Нужна сериализация на уровне товара. Вариант 1: BEGIN → SELECT stock FROM products WHERE id=$1 FOR UPDATE → проверить остаток → UPDATE stock → COMMIT. Вариант 2: UPDATE products SET stock = stock - $1 WHERE id = $2 AND stock >= $1, проверяешь affected rows. Второй атомарный и проще. Для нескольких товаров — сортировать ID чтобы избежать deadlock.
Как обработать concurrent checkout?
Middle+
120 просмотровAFK Offer AI
Что гарантирует happens-before?