Day 4 of #DistributedDilemmas: Idempotency is a lie we tell ourselves
Idempotency is a lie we tell ourselves. Nested partial failures expose retry logic flaws. True exactly-once delivery remains elusive in distributed…
Nested partial failures expose retry logic flaws. True exactly-once delivery remains elusive in distributed systems.
Let’s unpack this with examples and a system flow diagram.
➡️Example: Payment system retries demonstrate how nested operations undermine idempotency guarantees.
A payment API might:
- Deduct funds (idempotent)
- Update ledger (idempotent)
- Send receipt email (non-idempotent)
A partial failure after step 2 but before step 3 leads to:
- Funds deducted once
- Ledger updated once
- Emails sent multiple times on retries.
Database delete operations reveal semantic gaps:
- First delete: success (200 OK)
- Retried delete: “Key not found” error
- Same state change, different responses.

Keep reading
🚀 Launching today: 28 Days of #DistributedDilemmas
Follow me on Twitter/X this February for one battle-tested insight a day on the hidden complexities behind outages, tech debt and architectural nightmares.
#DistributedDilemmas: all 24 days in one place
In February 2025 I posted one distributed systems dilemma a day on X. I made it to day 24. Here they all are, with the diagrams.
Cell-based architecture, explained: the public version of my Innovation Day talk
My Innovation Day deck was internal, so here's the public version: what a cell is, scaling up and across, blast radius, and what cells cost you.
Leave a comment