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