Design a multi-channel notification system
DoorDashSoftware Engineer · Online AssessmentLast updated
This System Design question evaluates distributed-systems and API-design skills—scalability, reliable fanout, multi-channel integration, delivery guarantees (retries, idempotency, deduplication), rate-limiting, subscription/preferences modeling, and observability.
Design a notification system that receives alert events from other internal systems and notifies all subscribed users through multiple channels (e.g., in-app/push, email, SMS).
Your design should address:
- Core requirements and APIs (publish alert, manage subscriptions/preferences, send notifications)
- Fanout to many subscribers
- Multiple delivery channels with different providers
- Reliability (retries, dead-letter queues), ordering/deduplication, and idempotency
- Rate limiting and user preferences (opt-out, quiet hours)
- Observability and operational concerns
Assume high volume (millions of alerts/day) and that different alert types may have different urgency and SLAs.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.