Guides

Delivery and attempt lifecycle

Follow an Event from durable acceptance through attempts, retries, and terminal states.

On this page

From request to Delivery

  1. The Source is resolved and checked.
  2. The raw body is size-limited and retained.
  3. The inbound signature is verified over the original bytes.
  4. DeadHook records the Event and creates one Delivery for each eligible Destination.
  5. DeadHook returns 202 accepted (or 200 duplicate).

If DeadHook cannot record the Event, ingestion returns 503 and no accepted Event exists. There is no "accepted but not queued" success path.

Delivery states

State Meaning
pending / retry_scheduled Waiting for its first or next attempt.
delivered A Destination returned a success response (2xx).
dead_letter Retries exhausted or a terminal/policy failure ended the Delivery.
stopped / stop-pending Automatic retries were stopped. An in-flight request may still finish.
canceled / expired The Event or Delivery can no longer be sent under policy or retention.

A Delivery's status is not the same as the Event's aggregate status.

Attempt history

Each attempt records:

  • attempt number;
  • result such as success, HTTP failure, timeout, network error, or policy blocked;
  • HTTP status when a response was received;
  • duration and error code;
  • whether a response snippet was captured and when it expires;
  • start and completion timestamps.

Retryable vs terminal responses

Destination response Result
2xx Delivered.
3xx Terminal failure; redirects are not followed.
408, 409, 425, 429, 5xx Retryable, subject to attempt and time limits.
Other 4xx Terminal failure. Fix the Destination and use replay if appropriate.
Timeout / network / TLS Timeout and network failures retry; certificate or policy failures are terminal.

A 429 or Retry-After response is respected within policy bounds; it does not create an unlimited retry loop.

Timeouts

Destination timeout is 1–30 seconds (default 10 seconds). DeadHook does not hold a connection open beyond the configured timeout.

Success is local to DeadHook

A delivered state means DeadHook received a 2xx from the Destination. It does not prove the Destination committed its business transaction. Consumers must be idempotent and should return success only after their own durable write.