Question bankPricingSign in

Design a Notification System

MessagingMedium1:30

Design a notification system that delivers messages across multiple channels: push notifications (iOS/Android), SMS, email, and in-app notifications. The system serves 100 million users and sends 1 billion notifications per day. Different notification types have different priorities (e.g., security alerts are urgent, marketing emails are low priority). Users can configure per-channel preferences (e.g., "email me for weekly digests, push for direct messages, never SMS").

In your 90-second answer, cover: - High-level architecture and the notification delivery pipeline - How you handle multiple delivery channels with different latency characteristics - User preference management and opt-out compliance - Rate limiting and throttling to avoid spamming users - Reliability: ensuring critical notifications are not lost

Constraints: push notifications must arrive within 5 seconds for high-priority events. The system must support at-least-once delivery semantics.

How to approach it

  • Hint 1

    Decouple notification producers from delivery using a message queue. Producers should not need to know which channels to use -- a routing layer handles that based on user preferences.

  • Hint 2

    Each delivery channel (push, SMS, email) has vastly different throughput, cost, and reliability characteristics. Use separate worker pools per channel so a slow email provider does not block push delivery.

  • Hint 3

    For at-least-once delivery, persist notification state in a database before attempting delivery, and use retries with exponential backoff for transient failures.

Ready to answer it out loud?

Record your answer in 1:30 and Preptile scores it 1–10 with specifics — what landed, what you skipped, and what to say next time.

Practising needs an invite code. Join the waitlist and we’ll send you one.