Designing a Scalable Notification System: Endpoints, Architecture, and Estimations

Kacper Bąk
11 min readMar 31, 2023

Notification systems have become an integral part of our daily lives. They are used to provide important information such as breaking news, product updates, events, offerings, etc. Therefore, it is important to design a notification system that is scalable, efficient and supports multiple notification formats. In this article, I will discuss a high-level notification system design that supports mobile, SMS, and email notifications.

Step 1: Understand the Problem

To design a scalable notification system, I need to establish the scope of the project. I need to build a system that can send millions of notifications per day. The system should support personal, SMS, and email notifications. Additionally, the system should be able to support multiple devices such as iOS, Android, and desktop notifications. It should also be able to trigger notifications from client applications and their server-side scheduler. Users should be able to opt out of notifications if they so choose.

Step 2: Propose High-Level Design

The high-level design of the notification system consists of four main components: notification provider, contact information gathering flow, notification sending flow, and notification receiving flow.

Notification Provider