Menu

Post image 1
Post image 2
1 / 2
0

Webhook Retry Strategies (2026) — Idempotency, Backoff, Dead Letters

DEV Community·ShotaTanikawa·about 1 month ago
#Gn55xHdm
#pillar#webhooks#node#postgres#event#retry
Reading 0:00
15s threshold

Stripe will retry your webhook up to 17 times over 3 days . GitHub up to 50 times over 8 hours. Square up to 70 times over 72 hours. If your code charges a credit card or sends an email when those retries hit, you have a problem. This is the field guide I wish someone had handed me on day one for building webhook receivers that survive retries. Four pillars: idempotency by event ID , 2xx-fast async processing , understanding each sender's retry policy , and dead-letter handling for the requests that never succeed . Code examples are Node.js + Postgres, but the patterns are language-agnostic. Quick recipe : dedupe by event ID before doing real work, return 2xx fast, treat duplicates as no-ops, and set up a dead-letter queue for events that fail too many times. The rest is sender-specific tuning. Why retries are unavoidable Webhook senders (Stripe, GitHub, Shopify, etc.) decide an event was "delivered" based on whether your endpoint returned a 2xx HTTP status.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.

Read More