Webhooks System — Notes
Functional
- Register endpoints + subscribed event types.
- Sign payloads (HMAC).
- Retry with backoff.
- DLQ + manual replay.
- Per-endpoint health.
Non-functional
- Delivery within seconds normally; retries can stretch days.
- 99.9% eventual delivery.
Trade-offs
- Fanout architecture matters at scale (one event → many endpoints).
- Customer endpoints flake: design for them.
- Per-endpoint isolation so one slow customer doesn't block others.
Refs
- Stripe webhook architecture blog.
- "Convoys" (avoiding head-of-line blocking) Stripe blog.
- Svix, hookdeck open-source webhook gateways.