Один кейс, который надо держать в голове всем, кто лезет в маркетплейсы и личные кабинеты.
Race Condition — это когда два запроса приходят почти одновременно и ломают логику сервера.
Не в теории. В деньгах.
Контекст: система ждёт, что операция пройдёт один раз — списание, изменение остатка, активация промо, смена статуса заказа.
Действие: пользователь или бот шлёт серию параллельных запросов. Сервер не успевает синхронизировать обработку и принимает оба.
Результат: двойное списание, обход лимита, повторная активация, доступ к чужим данным, баг на ровном месте. ⚠️
3 типовых сценария:
1) два запроса на одну операцию — оба проходят;
2) запрос на проверку и запрос на изменение спорят между собой;
3) лимит есть в интерфейсе, но не закреплён на сервере.
Вывод простой: если в системе есть деньги, остатки, скидки или статусы — проверять надо не фронт, а серверную синхронизацию. Именно там обычно и течёт.
WB Pulse
@WBPulsePro
Один кейс, который надо держать в голове всем, кто лезет в маркетплейсы и личные кабинеты.
Этот пост опубликован в Telegram-канале WB Pulse. Подписаться можно по ссылке: @WBPulsePro.