Medium👤 3-5 years👤 8-15 years 1 min read

How would you design a notification system (email / SMS / push) at scale?

Asked inAmazonMicrosoftDeloitte
#notifications#fanout#queue#provider#idempotency
Report issue

⚡ Short Answer

Accept notification requests via an API, enqueue them, and have workers fan out to channel providers (email/SMS/push) with retries, rate limits per provider, and a DLQ. Add user preferences/opt-outs, templating, idempotency (dedupe), and delivery tracking. Decouple everything with queues so spikes and provider outages don't cascade.

Coffee Chat Question

Concept Made Simple

How would you design a notification system (email / SMS / push) at scale?

🧠Mind Map Answer

Remember It Faster

IngestAPI → queue (decouple)
Workersfan out per channel/provider
Reliabilityretries, DLQ, provider rate limits
Rulespreferences/opt-out, idempotency, tracking

🔥What If?

Think Beyond the Expected

A campaign sends 10M notifications and a provider starts rate-limiting you — what happens?

The queue absorbs the backlog (backpressure) while workers respect the provider's rate limit and retry with backoff; failed sends go to a DLQ for inspection. Without the queue + rate-aware workers, you'd hammer the provider, get throttled/blocked, and drop notifications.

😂Real World

Notification platforms are queue-driven fan-out with per-provider rate limits, retries/DLQ, user preferences, and dedup; the queue is what makes million-scale bursts and provider hiccups survivable.

🎯Interviewer's Expectation

Keywords they're listening for:

API → queue → workers fan-outretries/DLQper-provider rate limitspreferences/opt-outidempotency + tracking

⚠️Common Mistakes

  • Sending synchronously (spikes/outages cascade)
  • No per-provider rate limiting
  • No dedup → duplicate notifications

Best Practices

  • Queue + rate-aware workers + DLQ
  • Respect preferences/opt-outs
  • Idempotent sends + delivery tracking

🔁Follow-up Questions

  • 1How do you dedupe / ensure idempotent sends?
  • 2How do you handle user preferences and quiet hours?
  • 3How do you track delivery/bounce status?

🧩Related Technologies

SQS/KafkaSNS/FCM/APNsDLQtemplate engine

Continue Learning with AI

Take this question deeper with your favourite AI assistant. Pick a depth, copy the prompt, or open it directly — AI is your learning companion, not a shortcut.

Plain-language foundations

I'm preparing for a software engineering interview and want to understand this from scratch, as a beginner.

Topic: Message Queues (System Design)
Interview question: "How would you design a notification system (email / SMS / push) at scale?"

Please:
1. Explain the core idea in simple, plain language, using an everyday analogy.
2. Define any technical terms you use.
3. Walk through one small, concrete example.
4. Finish with a single sentence I can easily remember.

Keep the tone friendly and assume I'm new to this topic.
Open inChatGPTGeminiClaude

Was this answer helpful?

Support our platform by exploring our recommended products.

As an Amazon affiliate, purchases through these links may earn us a small commission — at no extra cost to you. It helps keep Full Stack Interview Guru free.

Related Questions