Consider a checkout that accepts an order just before the connection drops. The agent sees a timeout. Retrying should recover the result without creating another order.
What the shopper needs
- Identify the logical operation before sending it, and reuse that identity when retrying the same request.
- Expose a durable status that can distinguish pending, completed, failed, and conflicting attempts.
- Reject changed payloads that reuse the identity of an earlier operation.
- Test a timeout after acceptance, then retry and verify that only one intended result exists.
The revealing test interrupts the response after the server accepts the request. Retry it. Count the resulting orders; a reassuring success message is insufficient evidence.
A check you can run
In a test environment, interrupt the response after a write is accepted and retry according to the API contract. Count stored outcomes. Do not run a failure simulation against real purchases merely to check the wording of a success message.
Download preview image