System Design Interview

Understand the Problem

Scope 1 min readLesson 1 of 4

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.

Figure 1

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.

Clarifying the scope
Candidate

What types of notifications does the system support?

Interviewer

Push notification, SMS message, and email.

Candidate

Is it a real-time system?

Interviewer

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.

Candidate

What are the supported devices?

Interviewer

iOS devices, android devices, and laptop/desktop.

Candidate

What triggers notifications?

Interviewer

Notifications can be triggered by client applications. They can also be scheduled on the server-side.

Candidate

Will users be able to opt-out?

Interviewer

Yes, users who choose to opt-out will no longer receive notifications.

Candidate

How many notifications are sent out each day?

Interviewer

10 million mobile push notifications, 1 million SMS messages, and 5 million emails.

Finished reading?

Mark it complete to track your progress.