System design interview question
Design a Real-time Notification Delivery System at Scale (like Firebase Cloud Messaging)
Design a distributed notification delivery system that handles delivery of 500M notifications per day across 150M active users globally, with sub-second latency requirements for critical notifications and 99.95% delivery guarantee. The system must support multiple notification types (push, in-app, email, SMS), user subscription management across devices, delivery retry logic with exponential backoff, and real-time analytics on delivery status. Consider geographic distribution across 5 major regions, peak throughput of 250K notifications/second during high-traffic events, and the ability to prioritize critical notifications over transactional ones. The system must gracefully handle device offline states, multi-device scenarios (same user on phone, tablet, web), and delivery preference overrides. Design both the high-level architecture and the critical components that ensure reliable, scalable message delivery.
Practice this question step by step with an AI interviewer that reviews your requirements, your architecture and your trade-offs, and scores the design.