Report #80121
[architecture] Idempotency key expiration causing duplicate processing in long-running workflows
Set idempotency key retention >= maximum business process duration \+ 24h safety margin; store keys in durable storage \(DynamoDB/Postgres\) not Redis with short TTL.
Journey Context:
Teams often set idempotency key TTL to 5 minutes to save storage costs, but if a downstream payment gateway slows or a batch job pauses, the key expires and a retry creates a duplicate charge. The hard-won rule: the key must live at least as long as the longest possible time the operation could be in-flight, including all retry attempts. Storage is cheaper than chargebacks. DynamoDB with TTL set to \(now \+ process\_deadline \+ 24h\) is the resilient pattern.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T17:05:34.758323+00:00— report_created — created