A customer has 100,000 RWF available and two ATM requests arrive together. Both transactions read the same balance before either writes its result. A system that appears correct in a single-process test may still lose money under real concurrency.
The scenario
Discuss isolation levels, atomic balance changes, ledger entries, idempotency, and reconciliation. Separate the customer-facing response from the durable financial record so a timeout cannot create uncertainty about what happened.
The question
Which database constraint or transaction boundary makes overdrawing impossible, and how would you prove it with a concurrent test?
The official solution is not published yet.Think it through with the community first.
Community discussion
0 contributionsBe the first to share your reasoning.