Design Notification System

Medium

Design a notification platform that delivers push notifications, emails, SMS, and in-app messages across multiple channels. Handle user preferences, templating, priority levels, throttling, and delivery tracking at the scale of billions of notifications per day.

What to design

  1. What are the core functional requirements for a notification platform?
  2. What are the non-functional requirements? Consider throughput, latency by priority, reliability, and deliverability.
  3. Design the core APIs — sending notifications, managing preferences, and querying delivery status.
  4. How would you design the notification processing pipeline from ingestion to delivery?
  5. How would you handle push notification delivery to iOS (APNs) and Android (FCM) at scale?
  6. How would you design the in-app notification feed?
  7. How would you implement rate limiting and throttling to prevent notification fatigue?
  8. How would you track delivery status and handle failures across different channels?