System Design - Notification System
In this wiki, we will explore an approach to designing a notification service.
Requirements
- What type of notifications do we need to send? => Push, SMS, email
- Real-time system? => Soft real-time system. In case of high load, a slight delay is tolerable
- Supported devices? => iOS devices, Android devices, laptops, and desktops
- Who triggers notification => Any service, authenticated
- Opt-out feature? => Available to the users
Back of the envelope estimation:
- 10 million mobile push notifications, 1 million SMS, and 5 million Email notifications
Architecture
Tracking:
- Monitor queued notifications
- Track failure events
Future Study:
- How JWT authentication is used?
- How to deduplicate notifications?
Written on September 20, 2025