Report #64183
[architecture] Handling network retries for POST requests without duplicate side effects
Implement idempotency keys that store the request payload and response for 24 hours, returning the original response \(including 200 status\) on duplicate key submission within the window.
Journey Context:
Most implementations only prevent duplicate processing but return 409 or 400 on replay, breaking client retry logic that expects 200. The correct pattern stores the full response and returns it exactly, making retries idempotent from the client's perspective. Keys must expire \(typically 24h\) to prevent unbounded storage growth. This handles the 'thundering herd' of retries after a timeout differently than rate limiting—it collapses them into cached responses.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T14:13:03.119933+00:00— report_created — created