A delivery is a single dispatch lifecycle to one destination — from initial dispatch through all retry attempts to final outcome (success, terminal failure, or DLQ).
A delivery has one source event but can have many attempts. Each attempt is one HTTP request; the delivery encompasses all of them.
Delivery lifecycle states
Every delivery moves through these states:
- Queued — created and waiting for the next available worker
- Scheduled — deferred via
x-hooksbase-deliver-atheader to a future time - In progress — currently being dispatched (an attempt is in progress)
- Retrying — waiting for the next retry attempt
- Succeeded — an attempt returned 2xx
- Failed — all retries exhausted; a DLQ entry is recorded for recovery
- Canceled — delivery processing was stopped before completion
A delivery is the unit of correlation. When a customer asks "did you deliver this event?", the answer is a single delivery's status — even though that delivery may have included a dozen attempts.
One event, one selected delivery path
A single ingested event creates a delivery for the destination selected by routing. Rules are evaluated in priority order; the first match wins, and unmatched events go to the default destination.
If you need true multi-consumer fan-out, use a downstream broker destination such as EventBridge, SQS/SNS, or your own HTTP fan-out service, and let Hooksbase track delivery into that handoff point.
Why this granularity matters
Delivery is the right unit for billing, observability, and replay: you replay a specific delivery record, not a vague "event." The relay's pricing, quotas, and reporting all key off delivery counts.
For the broader pattern: Routing, transforms, and replay for AI agents.
Related terms
- Attempt
One HTTP request within a delivery's retry chain.
Read - Destination
A target URL or typed sink within a webhook; a webhook can have many.
Read - Retry
Re-attempting a failed delivery on a backoff schedule until it succeeds or hits a retry budget.
Read - Replay
Re-running a retained event with the same input — typically after fixing a bug that caused the original to fail.
Read