hookline

webhook delivery engine

A production-grade webhook delivery engine, running live. Submit an event below and watch it move through the real pipeline.

What it does

A webhook is an HTTP POST one service sends another when something happens. Sending it once is trivial. Sending it reliably, through timeouts, outages, and flaky receivers, is the hard part.

hookline owns that: it queues the event, retries with backoff, dead-letters cleanly after a bounded number of tries, and logs every attempt.

How the pipeline works
1
submit: an event (target URL + JSON payload) is POSTed to the API and validated.
2
api: the target is SSRF-checked, written to Postgres as pending, and a job is queued.
3
queue: the job sits in Redis; the API returns 202 Accepted immediately, without waiting for delivery.
4
worker: a background worker picks up the job and makes the HTTP POST to the target, with a timeout.
5
target: on a 2xx the event is marked success; on failure it's scheduled for retry with exponential backoff.
6
result: after too many failures the event is dead-lettered. Every attempt is logged either way.
Built for production
At-least-once deliveryDurable queue backed by Postgres; retries survive a broker or worker restart.
Exponential backoffFailed deliveries retry on a widening schedule, capped, then dead-letter.
Full audit logEvery attempt records status code, response, error, and timing.
SSRF protectionTargets resolving to private/internal addresses are rejected before any request.
API-key auth + rate limitingHashed keys; per-IP limits protect the public demo.
ObservabilityPrometheus metrics and Grafana dashboards over the live system.
Submit an event
Pipeline
submit
api
queue
worker
target
result
idle, submit an event to begin
Delivery attempts (live audit log)
attemptstatusdetailtime
no attempts yet