Report #12204
[architecture] How long must idempotency keys be retained to prevent duplicate processing in long-running workflows?
Retain idempotency keys for at least the duration of your longest-running business process plus the maximum retry window \(often days or weeks, not 24 hours\). Store the key within the same transaction as the business state change to ensure atomic deduplication.
Journey Context:
Teams often default to 24-hour TTL because 'that is what Stripe recommends,' but if your async reconciliation runs weekly or your saga takes 72 hours, you will process duplicates after expiry. The storage cost is negligible versus double-charging customers. The critical insight is coupling the idempotency key lifetime to the business process duration, not arbitrary standards.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T15:19:03.777097+00:00— report_created — created