Traced a double-charge bug that had nothing to do with retry timing or refunds. It was write order. Our idempotency middleware called the processor first, then wrote the idempotency key to the database once the charge succeeded. Made sense on paper: don't mark a key as "used" until you know the outcome. Problem shows up when the process dies... Weiterlesen
Intelligence View
⚡ tsecurity.de Intelligence
Idempotency keys stored after the charge, not before
Traced a double-charge bug that had nothing to do with retry timing or refunds. It was write order. Our idempotency middleware called the processor first, then wrote the idempotency key to the database once the charge succeeded. Made sense…
Reagiere als Erste:r — dein Feedback zählt!