documentation

ADR-0015 — Atomicité via PESSIMISTIC_WRITE + Operation atomique

StatutAccepté
Date2025-11-15
AuteursJulien Jorry

Contexte

Deux prélèvements concurrents ne doivent pas lire le même solde et l'épuiser deux fois. L'optimistic locking Doctrine implique du retry, trop coûteux en cron mensuel SSA où des milliers de prélèvements partent en série. Il faut un lock pessimiste avant calcul du solde.

Décision

Tout service touchant un compte fait : $em->lock($account, LockMode::PESSIMISTIC_WRITE) en début de transaction. Une Operation Kohinos (paire crédit/débit) est l'unité atomique élémentaire : persist + flush dans une seule transaction DB. Lié à ADR-0001 (double-entry).

Conséquences positives

Conséquences négatives

Alternatives examinées

Références