← All challenges
CHALLENGE #002

Two ATM Withdrawals at the Same Time

Backend DevelopmentAdvancedOpen

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 contributions

Be the first to share your reasoning.

Share your approach

Use your real display name. Guest emails are used for verification and never shown publicly.
Chat with us