Get started

Gateway overview

How Ensue Gateway receives, verifies, queues and delivers the webhooks your services depend on.

Receiving webhooks reliably takes more than an endpoint. Senders retry, burst and go quiet; your own services deploy, slow down and fail. Ensue Gateway sits between the two. It accepts a webhook, stores it durably, answers the sender straight away, and then delivers it to your service at a pace the service can handle, retrying on failure and keeping a record of every step.

Stripe ─┐                                       ┌─▶ billing service
GitHub ─┼─▶ source URL ─▶ flow(s) ─▶ queue ─────┼─▶ analytics
Shopify ┘   verify · dedupe  filter · transform └─▶ agent inbox

Core concepts

Concept What it is
Source A URL you give to a sender. Ensue verifies each request against the method you choose, stores it, and answers the sender at once.
Destination Where events go: an HTTPS URL, or an agent inbox. Each destination has its own queue, retry schedule and rate limit.
Flow Connects one source to one destination, with an optional filter and transformation.
Request One HTTP request a source received. Rejected requests are kept too, with the reason.
Event What a flow creates from an accepted request: one event per matching flow. This is what is delivered.
Attempt One try at delivering an event, with the response and how long it took.

A request that reaches a source with three active flows becomes three events, each delivered to its own destination and each retried independently.

What happens to a request

  1. Verify. The request is checked against the source’s verification method. Failures get a 401 and are logged with the reason; nothing is delivered.
  2. Deduplicate. If the source has a deduplication key and Ensue has seen that value before, the sender gets the original answer and nothing new is created.
  3. Store and acknowledge. The request, its events and the usage count are written together. Only then does the sender get its 200, so an acknowledged webhook is never lost.
  4. Filter and transform. Each flow decides whether the request matches its filter and reshapes the body with its transformation.
  5. Deliver. The destination’s queue sends the event, signs it, and applies the delivery policy: retries, backoff, rate limits and the circuit breaker.
  6. Record. Every step lands on the event’s timeline. Failures can be replayed.

What Gateway guarantees

Gateway delivers at least once. A destination can see the same event more than once, for example after a timeout where your service had already processed it. Every delivery carries an idempotency-key header (the event ID) so your handler can ignore repeats. Gateway does not promise exactly-once delivery or global ordering; if you need order, ordering keeps events for the same key in sequence.

Where to go next