NewTech··9 min
An Idempotency Key Promises One Execution, Not Eventual Success
The design detail that surprises people: Stripe caches the result of the first request under a key even when that result was a 500, and replays the failure to every retry. That is correct, and once you see why, the rest of the design follows, including where most homegrown implementations go wrong.
api designidempotencyreliability