Webhook Delivery Service  ·  View 06 of 20  ·  Structure

Layered Architecture

Seven layers, and the two things each of the middle ones is forbidden to know.

Editable source SVG draw.io All views
Consumer surface Developer Console Management API subscriptions, secrets Delivery History API attempts, health Verification Examples 6 languages Control plane Subscription Service strongly consistent Secret Service 2 active per endpoint Endpoint Health circuits, auto-disable Replay Service rate-limited Capture plane Intake API ack on durability Event Store Fan-out plane Subscription Matcher Entitlement Filter evaluated at fan-out Delivery Planner fair scheduling Delivery plane Per-Endpoint Queues Delivery Workers Signer SSRF Guard Egress NAT Evidence Attempt Log Dead-Letter Store Audit Log 400 d Platform Identity & Access Observability CI/CD committed events one per endpoint every attempt Layered Architecture Interface / broker Application we own Security / platform Data store Queue / topic event / async The capture plane knows nothing about subscriptions; the delivery plane knows nothing about the product. v 1.0 · owner Integration Platform Architecture · date 2026-09

The separations that matter

  • The capture plane knows nothing about subscriptions. It validates, persists and acknowledges — which is why intake latency does not move when a tenant adds 500 endpoints (ADR-01).
  • The delivery plane knows nothing about the product. It has a URL, a payload, a secret and a retry policy, and no route back into anything that matters (ADR-12).
  • Evidence is its own layer because the attempt log is a system of record, not telemetry. It answers a customer's dispute, and it is what the queues are rebuilt from (ADR-15).

Only three edges drawn

  • Committed events into fan-out, planned deliveries into the queues, and every attempt into the log. Those three carry the architecture.
  • Omitted: circuit-state reads, replay re-enqueue, secret fetches and the whole observability fan-out. They are drawn where they are the subject — views 12, 14, 13 and 17.

Assumptions

  • Strongly consistent subscription reads at fan-out time. An unsubscribe acknowledged must not be followed by a delivery; a stale subscription for minutes is a smaller harm than a delivery outage, but an unsubscribe is not (ADR-16).