Design a notification platform capable of sending 10 million notifications per day.

Requirements:

  • Mobile Push Notifications

  • Email

  • SMS

  • WhatsApp

  • SignalR

  • Retry Mechanism

  • Failed Queue

  • Scheduling

  • Delivery Reports

  • Read Receipts

Explain:

  • Architecture

  • Database Design

  • Queue Selection

  • Background Workers

  • Scalability

  • Monitoring

  • Logging

  • Security

How would you ensure high availability and fault tolerance?