Глоссарий

Race Condition

Race condition (состояние гонки) — ошибка, возникающая когда результат зависит от порядка выполнения параллельных операций. Классический пример: два запроса одновременно читают баланс ($100), оба снимают $80, оба записывают $20 — но должно быть -$60.

В БД

Решается транзакциями с подходящим уровнем изоляции или SELECT ... FOR UPDATE — блокировка строки до конца транзакции.

В кэше

Атомарные операции Redis (INCR, SETNX, Lua-скрипты) предотвращают гонку на уровне кэша.

Оптимистичная vs пессимистичная блокировка