Skip to content

Topic

Idempotency

A property where repeating an operation yields the same result as doing it once, often enforced via idempotency keys to prevent duplicate charges or orders.

Current stories

build1 publisher

One SQLite transaction keeps a retried Buy click from creating a second order

Retried Buy clicks get the original order back in a dev.to guide that commits each order with its attempt key in one SQLite transaction. A disabled button only cuts double-clicks, and the guide's available text ends before it covers charging the card.

Publishers:dev.to

Reality

Evidence55
Adoption
Insufficient
Hype gap0
Incentives
Insufficient
Confidence50
build1 publisher

Saga rollbacks break in the gap between semantic and atomic undo

In a five-step saga, running compensations out of LIFO order leaves a payment captured against a cancelled order, a dev.to walkthrough shows. Its fix is a durable, versioned coordinator with idempotency keys on every step and every compensation.

Publishers:dev.to

Reality

Evidence45
Adoption
Insufficient
Hype gap+10
Incentives
Insufficient
Confidence55
build1 publisher

Retrying a timed-out tool call can make an AI agent refund the same order twice

Agent loops can repeat a state-changing tool call in eight separate ways, a dev.to post argues, and each can duplicate a refund whose reply was lost. The post's fix is a stable operation ID tied to the payload, with UNKNOWN outcomes held until someone checks the provider.

Publishers:dev.to

Reality

Evidence35
Adoption
Insufficient
Hype gap+5
Incentives
Insufficient
Confidence40

Earlier coverage

  1. Refunding TX-18491 instead of TX-18419 passes every check the endpoint can run

    Build · September 20, 2026 · 1 publisher

  2. A pod restart between charging and committing the offset bills the customer twice

    Build · September 19, 2026 · 1 publisher

  3. A crash between the claim and the work makes the copied webhook dedupe swallow events

    Build · September 18, 2026 · 1 publisher

  4. An execution boundary lets the application refuse an agent's proposed tool call

    Build · September 18, 2026 · 1 publisher

  5. Pre-assigning a request ID turns a timed-out generation call into a resumable attempt

    Build · September 17, 2026 · 1 publisher

  6. A caption emoji rendered as an image broke the landing check behind three identical posts

    Build · September 16, 2026 · 1 publisher

  7. 40,000 inventory updates outlive the 900-second cron runner that retries them

    Build · September 16, 2026 · 1 publisher

  8. Postgres holds the weekly digest schedule so an operator can see what is due

    Build · September 15, 2026 · 1 publisher

  9. A 100-request run makes p99 the second-slowest sample in this shipping-label harness

    Build · September 15, 2026 · 1 publisher

  10. Marking the Inbox row PROCESSED before the business commit suppresses the retry

    Build · September 15, 2026 · 1 publisher

  11. A stable key per notice and channel lets a restarted worker resend only the pending SMS

    Build · September 13, 2026 · 1 publisher

  12. A delivery row per consumer records which credential read each webhook event

    Build · September 13, 2026 · 1 publisher

  13. Changing the operation key on a retry left the lab with a second job

    Build · September 13, 2026 · 1 publisher

  14. Cloudflare's CASB remediation runs on a queue that can deliver the same finding twice

    Build · September 12, 2026 · 1 publisher

  15. Treating a publish timeout as failure is how a retry can send the same article twice

    Build · September 12, 2026 · 1 publisher

  16. A generated read-then-write lets both requests spend the same balance

    Build · September 11, 2026 · 1 publisher

  17. Duplicate taps arrive at the server carrying one idempotency key

    Build · September 11, 2026 · 1 publisher

  18. A green delivery chart hides the renewal reminder still waiting behind a 429

    Build · September 10, 2026 · 1 publisher

  19. A forty-line guard removes the second writer behind a double-posted announcement

    Build · September 10, 2026 · 1 publisher

  20. Webhook post covers HMAC signatures and idempotency keys, but breaks off before replay protection is addressed

    Build · September 10, 2026 · 1 publisher

  21. The gateway returns 504 while the agent keeps spending tokens

    Build · September 10, 2026 · 1 publisher

  22. Treating MTN's 409 as a failure is what double-charges the customer

    Build · September 9, 2026 · 1 publisher

  23. Meta's three-second webhook window turns a slow WhatsApp handler into duplicate replies

    Build · September 8, 2026 · 1 publisher

  24. Payment updates can go missing at three points, and providers or clients may retry

    Build · August 30, 2026 · 1 publisher

  25. Reserving the idempotency key before the gateway call is what wins the race

    Build · August 29, 2026 · 1 publisher

  26. A recorded cutoff and an operation key make the second delete delivery a no-op

    Build · August 27, 2026 · 1 publisher

  27. Disabling Submit Fixes the Click, Not the Lost Response

    Build · August 21, 2026 · 1 publisher

  28. The queue failure that costs you is silent, and it is what BullMQ tutorials skip

    Build · August 16, 2026 · 1 publisher