Вопрос проверяет умение защищаться от гонок данных и некорректных проверок в конкурентной среде.
Короткий ответ
Проверка баланса должна выполняться внутри транзакции, а не в коде приложения. Иначе два параллельных запроса могут пройти проверку одновременно. Обычно используют блокировки строк или атомарные SQL-операции. Это гарантирует, что баланс не уйдёт в минус.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.