Limited Time Offer:Up to 0% off Hello Interview Premium
Up to 0% off Hello Interview Premium 🎉
Hello Interview
Learn System Design
Introduction
How to Prepare
Delivery Framework
Core Concepts
Key Technologies
Common Patterns
Question Breakdowns
Networking Essentials
API Design
Data Modeling
Caching
Sharding
Consistent Hashing
CAP Theorem
Database Indexing
Numbers to Know
Bitly
Dropbox
Local Delivery Service
Ticketmaster
FB News Feed
Tinder
LeetCode
WhatsApp
Rate Limiter
YouTube
FB Live Comments
YouTube Top K
Uber
Web Crawler
Ad Click Aggregator
FB Post Search
Yelp
Instagram
Strava
Distributed Cache
Online Auction
Job Scheduler
News Aggregator
Price Tracking Service
Notification System
Robinhood
Google Docs
Payment System
Metrics Monitoring
Online Chess
ChatGPT
Real-time Updates
Dealing with Contention
Multi-step Processes
Scaling Reads
Scaling Writes
Handling Large Blobs
Managing Long Running Tasks
Redis
Elasticsearch
Kafka
API Gateway
Cassandra
DynamoDB
PostgreSQL
Flink
ZooKeeper
Proximity Search
Time Series Databases
Data Structures for Big Data
Vector Databases
All Posts
Shopify Inventory Reservations
New
Discord Message Storage
New
Slack Job Queue
New
Vote For New Content
Pricing
Sign in / Sign up
Search
⌘K
Pricing

Tutor

Get Premium
Common Problems

Notification System

Multi-step Processes
Scaling Writes
ByEvan King·Published ·
medium

Understanding the Problem

🔔 What is a Notification System? A notification system is an internal platform that other teams at a company use to send messages to users across channels like push, email, and SMS. Product services hand it a message and a recipient, and the platform takes care of actually delivering it.
This is a platform problem rather than a user-facing product. Our customers are other engineering teams. The auth service sends one-time passwords (OTPs, the short-lived login codes users type in at sign-in), the marketing team blasts a promo to a million users at once, and the product team pings you when someone comments on your post. All of that flows through one system, so the design has to carry low-volume, latency-sensitive traffic alongside huge scheduled bursts.

Functional Requirements

Core Requirements
  1. Upstream services should be able to send a notification to a user via push, email, or SMS, either immediately or scheduled for a future time.
  2. Upstream services should be able to send campaigns, the same message delivered to a whole segment of users, immediately or scheduled.
  3. Users should be able to set notification preferences (channel opt-outs and quiet hours).
Below the line (out of scope):
  • Template management and rich content authoring.
  • Delivery analytics dashboards (open rates, click-through tracking).
  • In-app notification feeds and badge counts.
  • Frequency capping across notification types.

Non-Functional Requirements

Before writing the non-functional requirements, it's worth pinning down the scale. This is a platform question, so how it holds up under load is most of what we're being asked, and for this system the shape of the traffic matters more than the total. Say we deliver 10M notifications per day. Spread evenly that's only around 100 per second, which is honestly nothing. But notifications don't spread evenly. When marketing schedules a campaign to 1M users at 9am, they want it delivered at 9am, not trickled out over the day. Delivering 1M notifications within 5 minutes is over 3,000 per second, and that's a single campaign. Nothing stops two teams from scheduling their blasts for the same 9am. We'll design for surges of 5,000 notifications per second, roughly 50x our sustained rate, but treat the number as a design point rather than a ceiling. What matters more than the number is how the system behaves past it. An overload should stretch a promo blast from 5 minutes to 8, not break anything, and critical traffic shouldn't feel it at all. We'll hold ourselves to that in the deep dives.

The Set Up

Defining the Core Entities

API or System Interface

High-Level Design

1) Upstream services should be able to send a notification to a user, immediately or scheduled

2) Upstream services should be able to send campaigns to segments of users

3) Users should be able to set notification preferences

Potential Deep Dives

1) How do we guarantee an accepted notification is never dropped?

2) How does the system absorb a surge of 5,000 notifications per second?

3) How do we deliver critical notifications within 5 seconds, even during a surge?

4) How do we prevent duplicate notifications on top of at-least-once delivery?

Final Design

Some additional deep dives you might consider

What is Expected at Each Level?

Mid-level

Senior

Staff+

Purchase Premium to Keep Reading

Unlock this article and so much more with Hello Interview Premium
Buy Premium

Currently up to 20% off

Hello Interview Premium

System Design Guided Practice
Exclusive content
Recent interview questions
Learn More
Reading Progress

On This Page

Understanding the Problem

Functional Requirements

Non-Functional Requirements

The Set Up

Defining the Core Entities

API or System Interface

High-Level Design

1) Upstream services should be able to send a notification to a user, immediately or scheduled

2) Upstream services should be able to send campaigns to segments of users

3) Users should be able to set notification preferences

Potential Deep Dives

1) How do we guarantee an accepted notification is never dropped?

2) How does the system absorb a surge of 5,000 notifications per second?

3) How do we deliver critical notifications within 5 seconds, even during a surge?

4) How do we prevent duplicate notifications on top of at-least-once delivery?

Final Design

Some additional deep dives you might consider

What is Expected at Each Level?

Mid-level

Senior

Staff+

Questions
Meta SWE Interview QuestionsAmazon SWE Interview QuestionsGoogle SWE Interview QuestionsOpenAI SWE Interview QuestionsAnthropic SWE Interview QuestionsEngineering Manager (EM) Interview Questions
Learn
Learn System DesignLearn DSALearn BehavioralLearn ML System DesignLearn Low Level DesignGuided Practice
Links
FAQPricingGift PremiumHello Interview Premium
Legal
Terms and ConditionsPrivacy PolicySecurity
Contact
About UsProduct Support

7511 Greenwood Ave North Unit #4238 Seattle WA 98103

© 2026 Optick Labs Inc. All rights reserved.