Report #11797
[architecture] Duplicate processing on retries in distributed systems
Client-generated UUID idempotency keys with server-side TTL storage \(Redis SETNX with expiration or database unique constraints\) that stores response payloads to return identical responses on replays
Journey Context:
Check-then-act patterns race; server-generated IDs fail on client timeouts. The key is storing the \*outcome\* not just the key, so replay returns 200 with original payload, not 409. Redis SETNX with TTL handles dedup window; for ACID compliance use DB unique constraints on \(idempotency\_key, resource\_id\). Without this, network hiccups create double-charges, double-shipments, and data corruption.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T14:18:14.552157+00:00— report_created — created