A receipt that outlives the request.
Commit a synthetic transfer, withhold its acknowledgement, and recover its receipt in a separate request. Then send concurrent duplicates against the same stored state.
- 01
Commit without a receipt
Transfer 250 demo units. The server commits, then deliberately returns a 503 response without the receipt.
- 02
Recover in another request
Send the same identity and transfer content. Inspect the original receipt and the stored balances.
- 03
Send concurrent duplicates
Send two requests for a second, 100-unit transfer together. Both must resolve to one stored receipt.
- 04
Challenge the content binding
Reuse the first identity with 400 units. Inspect the conflict, then read the stored state separately.
Start a session to run the study.
Where the guarantee ends
A single SQLite-backed Durable Object owns the session's bounded transfer log. It stores the command before returning success; that log reconstructs the balances and original receipt after an execution restart. Expiration ends the session's replay window.
The 503 experiment deliberately withholds an acknowledgement after a durable write. Runtime verification also checks client response interruption and recovery after a local process restart. Those checks concern synthetic state in this service. Regional failover, real funds, and effects in another service remain outside this study.
Describe the decision in your system