Understand the Problem
A notification system has already become a very popular feature for many applications in recent years. A notification alerts a user with important information like breaking news, product updates, events, offerings, etc. It has become an indispensable part of our daily life. In this chapter, you are asked to design a notification system.
A notification is more than just mobile push notification. Three types of notification formats are: mobile push notification, SMS message, and Email. Figure 1 shows an example of each of these notifications.
Step 1 – Understand the problem and establish design scope
Building a scalable system that sends out millions of notifications a day is not an easy task. It requires a deep understanding of the notification ecosystem. The interview question is purposely designed to be open-ended and ambiguous, and it is your responsibility to ask questions to clarify the requirements.
What types of notifications does the system support?
Push notification, SMS message, and email.
Is it a real-time system?
Let us say it is a soft real-time system. We want a user to receive notifications as soon as possible. However, if the system is under a high workload, a slight delay is acceptable.
What are the supported devices?
iOS devices, android devices, and laptop/desktop.
What triggers notifications?
Notifications can be triggered by client applications. They can also be scheduled on the server-side.
Will users be able to opt-out?
Yes, users who choose to opt-out will no longer receive notifications.
How many notifications are sent out each day?
10 million mobile push notifications, 1 million SMS messages, and 5 million emails.
Finished reading?
Mark it complete to track your progress.