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:
Assume high volume (millions of alerts/day) and that different alert types may have different urgency and SLAs.