Webhook (easy)
You are interviewing for Engineering Manager. This is a 30–45 minute whiteboard / word-problem. Talk through observations as you go. Draw.
This prompt is adapted from System Design School: Design Webhook (SDS labels it easy). Read this document only. Do not open the interviewer page. Do not open the SDS solution until after the mock.
Context
External systems push events to you over HTTP when something happens (a payment updates, an order ships, a record changes). You do not poll them on every change. They expect a timely HTTP response that means “we got it.”
You still have to do work with that payload, keep a record for debugging, and survive process crashes.
Problem
Design a webhook ingestion service.
In scope: accept incoming webhook HTTP calls, run the corresponding business operation, persist the original event and the result for audit/debug, and keep processing if a component dies.
The senders will retry. Events may arrive more than once. They may not arrive in the order they were produced.
What to produce
- Clarify requirements. Ask questions. Write down what you are optimizing for.
- Sketch the HTTP contract (what you return and when).
- Draw a high-level design and walk through one event, including a retry.
- Go deep on the hardest parts.
- Close as an engineering manager: what ships first, who owns what, what you measure, how you talk about risk.