SYSTEM DESIGN PRACTICE 2 min read Library →

Design a Multi-Channel Notification Platform

Principal-level prompt about dispatching high-volume transactional and marketing alerts across Push, SMS, and Email with carrier circuit breakers and preference routing.

Functional requirements (FR)

  • Add functional requirements here.

Non-functional requirements (NFR)

  • Add non‑functional requirements here.

The prompt

Design a global, multi-tenant notification platform for sending transactional, security, and promotional messages across mobile push (APNs, FCM), SMS (Twilio, Sinch), email (SendGrid, SES), and in-app feeds. The system must process hundreds of millions of notifications daily, enforce recipient preferences and quiet hours, and gracefully handle carrier outages without losing critical alerts.

Functional requirements

  • Dispatch messages across Mobile Push, SMS, Email, Webhooks, and In-App notification inboxes.
  • Render dynamic templates with localized text, variable interpolation, and version control.
  • Enforce granular user communication preferences, opt-out lists, and local time-zone quiet hours.
  • Deduplicate identical messages caused by upstream retries or multiple services firing within a sliding window.
  • Ingest carrier delivery receipts and webhooks to provide end-to-end delivery telemetry (SENT, DELIVERED, BOUNCED).
  • Support priority routing with strict separation between P0 (2FA OTPs) and P3 (promotional campaigns).

Non-functional requirements

  • Scale to 500M notifications/day with peak throughput of 50,000 notifications/sec.
  • Transactional latency: P0 security and OTP messages dispatch to downstream providers in $p99 \le 5\text{ seconds}$.
  • Zero dropped transactional notifications ($RPO = 0$); persistent event log precedes all downstream dispatch attempts.
  • Automated multi-carrier circuit breaking switches traffic to backup vendors within 30 seconds of carrier degradation.
  • Priority queue isolation prevents high-volume marketing batches from causing head-of-line blocking on OTPs.
  • Multi-tenant tenant boundaries prevent quota exhaustion or noisy neighbors from affecting other services.
  • Sensitive user data (phone numbers, email addresses, OTP codes) is encrypted in transit and at rest.

Discussion prompts

  • How do you design priority queue architectures to physically isolate transactional P0 alerts from marketing campaigns?
  • How do dynamic vendor circuit breakers evaluate delivery success rates and shift traffic based on real-time quality and cost?
  • How do you implement distributed idempotency key fingerprints to prevent duplicate user notifications?
  • How does the system process downstream carrier webhooks at scale without overwhelming internal status databases?
  • What is the operational protocol for handling invalid device tokens and carrier feedback loops to avoid provider penalties?

results matching ""

    No results matching ""