
I Built a Webhook Relay on Cloudflare Workers — Here's Every Bug That Almost Killed It
I built EventDock , a webhook reliability layer that sits between webhook providers (Stripe, GitHub, etc.) and your application. The idea is simple: accept the webhook instantly, store it durably, and deliver it to your endpoint with retries, logging, and a dead letter queue. I chose Cloudflare Workers as the platform. Edge compute seemed like the perfect fit — webhook providers have short timeouts (Stripe gives you ~20 seconds), so you want to ACK as fast as possible. A Worker can respond in under 50ms from the nearest edge node. No cold starts, no servers to manage, global by default. The architecture works beautifully on paper . Getting it to work reliably in production required finding and fixing bugs that were invisible in development and staging. Here are the four that almost killed the project. The Architecture Before diving into the bugs, here's the flow: Provider (Stripe, GitHub, etc.) → CF Worker (ingest) — validates, stores to D1, enqueues → CF Queue — at-least-once delivery
Continue reading on Dev.to JavaScript
Opens in a new tab



