System design interview questionMediumMessaging & Async
Design a Reliable Webhook Delivery System
Design reliable webhook delivery: accept events, deliver HTTP callbacks to customer endpoints with retries.
Interview scope
Client → Gateway/LB → App → Message Queue; workers deliver; App → DB for status. No Client → Queue.
Functional requirements
- Enqueue an outbound webhook for an event.
- Workers POST to customer URLs.
- Retry on failure and track delivery status.
Scale and quality goals
- Customer endpoints are slow/flaky — must be async.
- Spikes of events need a durable queue.
- Status should be queryable from storage.
Capacity assumption
Design for this scale
Assume ~50M webhook deliveries/day (~580 RPS average); retries add extra worker load.
Practice more than a diagram
Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.
Explore Premium →