В Django-сервисе два одновременных запроса списывают деньги с одного баланса, и иногда баланс уходит в минус или одно списание теряется. Почему так происходит и как вы это исправите?
~4 мин голосом
Как подойти
Проверяют, понимает ли кандидат природу гонки read-modify-write (lost update) и почему transaction.atomic её не лечит, а также умеет ли выбрать подходящий механизм защиты — пессимистичную или оптимистичную блокировку, атомарный update, ограничения в базе — и учесть сопутствующие риски: дедлоки, ретраи и идемпотентность.
Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.