IRInterview Ready
← System Design

Notification & Push Delivery System

Async Communication

A dedicated service that fans out notifications (push, email, SMS, in-app) across multiple channels and third-party providers reliably and at scale.

A notification system decouples 'something happened that a user should know about' from the messy details of actually delivering that notice across push notifications (APNs for iOS, FCM for Android/web), email (SES/SendGrid), SMS (Twilio), and in-app feeds — each with different providers, rate limits, formats, and failure modes. The core design is: an event triggers a notification request → it's queued → a set of channel-specific workers pick it up, render the right template, respect the user's preferences/quiet-hours, and call the appropriate third-party provider, with retries and dead-lettering for failures.

How it connects

Notification & Push Delivery System as the source, with the components it typically interacts with.

Notification delivery is de…User notification preferenc…Notification systems rate-l…Notification & PushDelivery SystemAsync CommunicationMessage Queues &Event StreamingAsync CommunicationDatabase Types (SQL,NoSQL & Beyond)StorageRate LimitingTraffic Management
  • Message Queues & Event Streaming: Notification delivery is decoupled from the triggering action via a queue, so a slow push/email/SMS provider never blocks the request path.
  • Database Types (SQL, NoSQL & Beyond): User notification preferences and delivery status/history are persisted in a database that the notification service reads and writes.
  • Rate Limiting: Notification systems rate-limit per user/channel to avoid spamming a user with duplicate or excessive alerts in a short window.