Forse non mi sono spiegato bene.
Allora partiamo da un presupposto sul quale spero siamo tutti d'accordo.
PHP non è multi thread (questo comunque non esclude al 100% le race condition)
Detto questo il punto che non mi è chiaro è, se ho tre account diversi registrati, uno con 1000 euro e due senza, anche nell'eventualità che si verifichi una race condition su di un trasferimento soldi, mi spieghi come faccio a richiedere di trasferire soldi che non ho?
Questa situazione non ha senso, non vedo proprio come possa verificarsi.Il primo controllo che farà è vedere se ci sono effettivamente i 1000 euro da trasferire, ma siccome ho lanciato due thread paralleli il controllo andrà a buon fine per entrambe le richieste, e quindi sposterà 1000 euro a un utente e 1000 all'altro raddoppiando il suo capitale.
Tre account diversi insistono su tre entità diverse e sono associati a tre balance account diversi... per questo non capisco come possa questo specifico scenario essere problematico.