Member-only story
Designing a Notification System That Can Handle 10 Million Users
Design a Notification System at 10 Million Users
You have 10 million users.
At 10:00 AM, your marketing manager clicks “Send” on a flash-sale campaign.
Ten million users are now waiting for a notification.
Your backend has to deliver millions of push notifications, emails, and in-app messages without taking down your core APIs, overwhelming your database, or getting throttled by Firebase, Twilio, or SendGrid.
And here’s the problem: you can’t simply loop over 10 million users and call an API.
That works at small scale.
At 10 million users, it becomes a distributed systems problem.
Now you have to think about Kafka, backpressure, retries, rate limits, idempotency, consumer lag, provider failures, and traffic spikes.
So how would you actually design a notification system that can survive this?
Let’s build one using Java, Spring Boot, Kafka, Redis, and MySQL — and more importantly, let’s understand the engineering decisions behind it.









