07 · Durable delivery
Safe Retry: One Entry, One Effect
See the durability boundary directly. Invalid input changes nothing. A valid entry is admitted and processed once; delivering it again reuses its durable evidence without producing another state change, epoch, event, or gas charge.
The delivery problem
A lost response must not become a duplicate action.
Clients retry because networks are uncertain. The runtime therefore distinguishes “I did not receive the response” from “the action never happened.” A stable idempotency key lets the server return the original durable result.
Malformed input does not append a Timeline Entry, advance a clock, create a receipt, charge processing gas, or change the Root.
invalid request → reject atomically → no entry / no epoch / no effect valid request + key K → append one entry → process one revision → persist receipt for K retry request + key K → return the same receipt → no second effect
Run it
Inspect what does—and does not—change.
The useful proof is not a success banner. It is the unchanged clocks and counts around a rejected request and repeated delivery.
What this teaches
Append, processing, and delivery are separate boundaries.
Separating them makes retry behavior explainable and lets a replay prove that accepted work occurred once.
Return to any lesson, reset its scenario, change participants or requests, and compare the result with the guided path.