One Broken Endpoint Shouldn't Slow Down Everyone Else
Every destination endpoint gets its own circuit breaker. When an endpoint fails repeatedly, Hookbase stops delivering to it, waits, sends a probe to check whether it has recovered, and resumes automatically once it has — without you touching anything.
Closed → Open → Half-Open → Closed
A circuit breaker is a small state machine that sits in front of each endpoint. It has three states, and it moves between them on its own based on what your endpoint actually does.
Closed
The normal state. Every routed event is delivered to the endpoint as usual, and the breaker just counts consecutive failures in the background.
Open
After 5 consecutive delivery failures (the default, configurable per endpoint), the circuit opens. Deliveries to that endpoint are skipped outright instead of being attempted.
Half-Open
Once the cooldown elapses — 60 seconds by default, also configurable — a single probe delivery is allowed through to test whether the endpoint has come back.
Closed Again
After 2 consecutive successful probes (the default success threshold), the circuit closes and normal delivery resumes. A failed probe sends it back to open.
Closed, open, and half-open are the three real states — the fourth step above is simply the circuit returning to closed. The whole cycle runs per endpoint, so recovery for one destination never waits on another.
What the Breaker Actually Does
The point isn't to give up on an endpoint. It's to stop spending outbound delivery capacity on an endpoint that is definitively down, so the endpoints that are up keep getting their events on time.
One Breaker Per Endpoint
Every destination endpoint gets its own independent circuit breaker. A failing endpoint is isolated on its own — the state of one endpoint never affects delivery to any other.
Configurable Thresholds
The failure threshold, the cooldown before a probe is allowed, and the number of successful probes required to close again are all configurable per endpoint. The defaults are 5 failures, 60 seconds, and 2 successes.
Skipped, Not Attempted
While a circuit is open, deliveries to that endpoint are skipped and recorded with the reason "circuit_breaker" rather than being attempted and burning a retry against an endpoint you already know is down.
Nothing Loops Forever
If a circuit stays open long enough that a message exhausts its attempts while waiting, that message moves to the Dead Letter Queue with the reason "circuit_breaker_exhausted" instead of cycling indefinitely.
Works With Retries
Retries stop early once a circuit is open, so the two features reinforce each other — the retry schedule handles a blip, and the breaker takes over when the endpoint is properly down.
Built for Self-Serve Endpoints
If your customers register their own endpoints, one flaky customer integration is exactly the failure mode circuit breakers exist to contain.
Circuit breakers pair directly with webhook retries, and they matter most when you run a self-serve customer portal where your customers register endpoints you don't control.
Why This Matters
Without a breaker, a single misconfigured or down endpoint keeps getting attempted — and that work has to come out of the same outbound capacity every other endpoint is waiting on.
Without circuit breakers
With Hookbase
All three thresholds — failures to open, cooldown before a probe, and successes to close — are configurable per endpoint, so a critical internal destination and a flaky third-party one can behave differently.
Keep Delivering, Even When an Endpoint Doesn't
Add a destination and the circuit breaker is already watching it. Get started free — no credit card required.