Report #4282
[architecture] How to prevent duplicate processing in distributed retries
Use client-generated UUID idempotency keys with server-side storage \(e.g., Redis/DB\) for 24h\+ TTL; return 409/200 on duplicates; process only if key unseen
Journey Context:
People naively use timestamps or hash\(payload\) which fails when clocks skew or payloads vary slightly. True idempotency requires the client to explicitly signal 'this is the same attempt' because only the client knows what constitutes a retry vs new operation. Stripe's API uses Idempotency-Key header stored for 24h; S3 uses If-Match/etags.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T19:09:57.363688+00:00— report_created — created