Check first, write later
0.60461Both requests first saw balance 100. Each amount was at most 100, so both were approved. A pair counted as overcommitted when a + b > 100.
A sampled synthetic counterexampleTOWOW SYNTHETIC RESULT · R2
When checking and writing happen at different moments, two requests can read the same stale balance and each receive an individually correct approval.
Across 100,000 synthetic request pairs, this model produced 60,461 overcommitments. The 60.461% is not a real incident rate. It is a deliberately exposed concurrency counterexample.
Design conclusion
Drafts can be eventually consistent. A final commitment over scarce resources needs one moment that counts.
01 · THE SYNTHETIC WORLD
This was a historical synthetic generator from 2026-07-24, not production telemetry, and it did not call language models. It asked one narrow question: what happens when two requests read a stale balance before either update becomes visible?
02 · WHAT THE TWO ARMS ACTUALLY DID
That difference controls the claim. The check-then-write arm performed numerical sampling. The reservation arm did not run a database or concurrent transaction.
Both requests first saw balance 100. Each amount was at most 100, so both were approved. A pair counted as overcommitted when a + b > 100.
A sampled synthetic counterexampleThe code directly set the reservation overspend array to zero, expressing the invariant that successful reservations cannot exceed B.
Zero by construction, not observationA geometric area calculation gives the exact probability. The Monte Carlo result is close, so the sample agrees with this generator.
Generator calibration, not product proofDo not report “zero failures for serializable reservation in 100,000 concurrent trials.” There was no database, lock, transaction isolation, thread race, process race, or fault injection.
03 · THE MISSING LINEARIZATION POINT
No request needed to lie. The two approvals simply lacked one shared moment that counted.
Request A read balance 100. Request B read the same stale balance 100.
A was no larger than 100, so it passed. B was also no larger than 100, so it passed.
The two local approvals moved toward write without reserving capacity against each other.
Whenever a + b > 100, two individually valid decisions produced a joint overcommitment.
“There was enough when I checked” is not evidence of a final commitment. The system must prove that capacity became exclusive at the moment the commitment counted.
04 · WHY THE NUMBER IS ABOUT 60.5%
Subtract 10 from a and b. The sample space becomes a square with side 90. The safe region x + y ≤ 80 is a right triangle. Everything else is overcommitment.
60,461 samples satisfied a + b > 100.
(8100 − 3200) / 8100 = 4900 / 8100.
Their agreement is not real-world validation. It only shows consistency between the historical sample and this two-request, fixed-balance, uniform-distribution model.
05 · A REPRODUCTION TRAP
The historical script shared one RNG across four experiments and ran the concurrency experiment last. Calling only this experiment with seed 20260724 gives 60,370 / 100,000, or 0.60370. Replaying the full call order reproduces 0.60461.
0.60461
0.60370
0.60461
Not retained
Still auditable
We can say the result was reconstructed from code and RNG order. We cannot say the original samples were audited row by row. Reconstructed data must not masquerade as retained raw data.
06 · WHAT ZERO WOULD REQUIRE IN REALITY
The ideal reservation argument is straightforward: atomically increase reserved only when capacity remains, and successful reservations cannot exceed B. A real system must still prove that this atomic boundary exists.
Hold capacity exclusively
Turn the hold into a final commitment
Return capacity after failure or cancellation
Handle abandoned and timed-out holds
Preserve ordering across faults and retries
If reserve is only sequential reads and writes in an in-memory dictionary, it proves nothing about threads, processes, databases, or consistency across failure domains.
07 · TOWOW × FLOWNESS
Scarce capacity cannot depend on separate claims of availability. A relation must say who can reserve which resource version, when the hold becomes a commitment, and who can release it.
EventLog, Commit Gates, and target-native readback can preserve causality and outcomes. A Harness cannot magically make a non-atomic backend atomic.
Together, the system needs both the relational meaning of commitment and fresh evidence from the target that actually owns the capacity.
08 · CLAIM BOUNDARY
Retained materials include generator code, the fixed seed, historical call order, a two-row summary CSV, a manifest copy, and SHA-256 checksums. The 100,000 original request pairs, per-trial decisions, transaction logs, schedules, and environment lock were not retained.
09 · NEXT EXPERIMENT
A real comparison needs a barrier that forces concurrent interleaving, actual check-then-write and database-transaction arms, and retained commit, abort, retry, lock-wait, isolation, latency, fault-recovery, and multi-seed results.