Duplicate orders and emails from retried API calls
Under retry pressure, side effects execute more than once and teams lose trust in automation. Idempotency keys and contract rules are required before scaling retries.
Common symptom variants
Primary playbook
When retries create duplicate side effects, idempotency keys are the only safe fix. This playbook shows how to design keys, store results, and prove duplicates cannot recur.
Recommended resource
A key format, storage checklist, and replay rules to prevent duplicate side effects in .NET APIs.
Related posts
Outbox pattern: reliable writes + events without the enterprise baggage
When a database write succeeds but the event never arrives, your system is lying to downstream consumers. The outbox pattern fixes this without a distributed transaction or a message broker rewrite.
Retries making outages worse: when resilience policies multiply failures in .NET
Retry storms don't look like a bug—they look like good engineering until retries amplify failures and multiply in-flight requests during backpressure.