Start here

Core concepts

Organizations, Projects, Sources, Destinations, Events, Deliveries and DLQ.

On this page
Concept Meaning
Organization The account and billing boundary. Quotas are counted per Organization.
Project A resource filter inside an Organization. It groups Sources, Destinations, Events, and metrics.
Source A named ingestion configuration with an authentication method, public locator, and signing credential.
Destination A public HTTPS endpoint attached to a Source. DeadHook signs each outbound attempt with the Destination's signing secret.
Event The durable record of one authenticated inbound request, including the raw payload and selected headers.
Delivery The independent obligation to send one Event to one Destination. A single Event may have several Deliveries.
Attempt One outbound HTTP request belonging to a Delivery, with status, duration, result, and optional captured response.
Dead Letter Queue (DLQ) The view of Deliveries that exhausted retries or reached a terminal policy failure and are eligible for manual replay.

Scope relationships

Organization
├── Project (filter)
├── Source ── Event ── Delivery ── Attempt
└── Destination ── Delivery
  • An Event belongs to exactly one Organization and one Source.
  • A Delivery joins one Event to one Destination.
  • A Delivery's attempts are ordered by attempt number.
  • A Replay is a new dispatch cycle over the same Delivery, with its own audit record.
  • A Stop request is attached to one Delivery and does not erase its history.

Authentication is not the same as authorization

  • Ingress authentication proves the provider sent the request. It uses the Source authentication method.
  • Dashboard access proves a signed-in member may view or manage the Organization. Their role determines which actions are available.
  • Organization isolation keeps one Organization's data separate from another's.

A Source public locator does not grant dashboard access. A dashboard login does not authenticate an ingestion request.

Delivery is at least once

DeadHook may deliver an Event more than once. A network timeout can hide a 2xx, a delivery interruption can leave an ambiguous result, and a replay is an explicit second dispatch.

Consumers must be idempotent. Use the stable webhook-id header (msg_<delivery-reference>) and your own business key to deduplicate.

The Event status is an aggregate

An Event with multiple Deliveries can be partial (some delivered, some failed) or in_progress. Inspect each Destination's Delivery separately rather than assuming a single boolean.