Race conditions: mutex, semáforo e como o banco de dados resolve o problema
Race conditions aparecem quando operações que deveriam ser atômicas são duas queries separadas. Entenda SELECT FOR UPDATE, optimistic locking com version field e como testar concorrência com stress tests.