Skip to content
QuizMaker logoQuizMaker
Activity
System Design - Start-Level Prep
2. Must-Know Case Studies
System Design Round Framework: Clarify, Estimate, Design, Defend
Design a Rate Limiter: Buckets, Counters, and Real Trade-Offs
Design a Notification System: Fan-Out, Preferences, Retries, and Delivery Guarantees
Design a URL Shortener: IDs, Redirects, Caching, and Expiry
Design a News Feed: Fan-Out, Ranking, Caching, and Celebrity Users
CONTENTS

Design a Notification System: Fan-Out, Preferences, Retries, and Delivery Guarantees

A practical system design case study that combines queues, user preferences, idempotency, and multi-channel delivery.

Mar 11, 202643 views0 likes0 fires
18px

[!IMPORTANT] Notification design questions test whether you can separate product policy from transport mechanics.

๐Ÿงญ At a Glance

AreaWhat To Remember
FocusA notification system sounds straightforward until you account for preferences, per-channel throttling, duplicates, retries, and third-party providers. That is exactly why interviewers ask it.
Why Interviewers CareA solid answer must explain event ingestion, channel selection, message fan-out, template rendering, provider delivery, and the state you need to avoid spamming or duplicating users.
First Move In The RoundStart with the event source and define the canonical notification event schema.
Most Common MistakeSending email or push notifications directly inside application requests.

[!TIP] Quick Summary: Interview rounds reward structure first, detail second. Use one real example whenever you define a concept. End with trade-offs or failure points to sound production-aware.

๐Ÿ“Œ Why This Topic Keeps Appearing

A notification system sounds straightforward until you account for preferences, per-channel throttling, duplicates, retries, and third-party providers. That is exactly why interviewers ask it.

A solid answer must explain event ingestion, channel selection, message fan-out, template rendering, provider delivery, and the state you need to avoid spamming or duplicating users.

๐ŸŽฏ Real Interview Prompts You Should Be Ready For

Real PromptWhy It Gets Asked
Design notifications for likes, comments, and follows in a social app.Tests whether you can define scope and state assumptions clearly.
How would you support push, email, and SMS from one event stream?Checks whether you can connect a concept to scale, correctness, or user impact.
How do you respect user preferences and quiet hours?Evaluates whether you can defend trade-offs instead of reciting definitions.
What happens if the push vendor times out or an email provider throttles requests?Pushes you to handle edge cases, bottlenecks, or communication clarity.

๐Ÿ› ๏ธ How To Answer Under Interview Pressure

  1. Start with the event source and define the canonical notification event schema.
  2. Store user preferences separately from delivery logs so policy and history remain independent.
  3. Use asynchronous fan-out through a queue or topic instead of sending notifications inside the request path.
  4. Split channel workers for push, email, and SMS because each has different rate limits, payloads, and failure modes.
  5. Track idempotency keys, retries, and delivery status so users do not receive duplicate alerts.

๐Ÿง  What Interviewers Usually Evaluate Here

  • Can you explain the concept clearly without hiding behind jargon?
  • Can you connect the idea to a concrete engineering scenario?
  • Can you articulate trade-offs, constraints, or failure cases?
  • Can you stay structured when the interviewer asks a follow-up variation?
  • Can you distinguish this topic from other similar concepts without getting confused?

๐Ÿ—ฃ๏ธ What A Strong Spoken Answer Sounds Like

If this topic comes up in a live interview, a strong answer should sound deliberate rather than memorized. Start with a plain-English definition, immediately explain the problem it solves, then attach one example, and end with one trade-off or limitation. That structure makes even a short answer sound mature.

A practical spoken pattern is: definition โ†’ why it matters โ†’ example โ†’ trade-off โ†’ edge case. This works especially well for fresher interviews because it prevents you from stopping after the definition and it gives the interviewer multiple places to continue the discussion.

For this topic, your first safe move is to start with the event source and define the canonical notification event schema. After that, reinforce the answer with one of your revision anchors such as keep notification creation off the synchronous user request path. That combination makes the answer sound applied, not rehearsed.

A notification system sounds straightforward until you account for preferences, per-channel throttling, duplicates, retries, and third-party providers. That is exactly why interviewers ask it.

Core Data You Need

  • Notification event: actor, recipient, event type, object ID, created time, dedupe key.
  • Preference store: channel opt-in, topic-level settings, quiet hours, locale.
  • Delivery log: queued, sent, failed, provider receipt, retry count.

Interviewers like it when you separate these records because it keeps policy logic flexible without bloating the delivery pipeline.

Failure Handling

Use retries with backoff for transient provider failures. If a message keeps failing, move it to a dead-letter queue so it can be inspected without blocking the main pipeline. For exactly-once delivery you usually settle for at-least-once + idempotency rather than promising impossible guarantees across third-party vendors.

๐Ÿ” Follow-Ups You Should Expect

Likely Follow-UpWhat A Strong Answer Should Include
Design notifications for likes, comments, and follows in a social app.A clear scope, explicit assumptions, and the core objective.
How would you support push, email, and SMS from one event stream?One practical example plus a visible engineering trade-off.
How do you respect user preferences and quiet hours?A contrast with a similar concept so the distinction is easy to follow.
What happens if the push vendor times out or an email provider throttles requests?An edge case, a bottleneck, and how you would handle it in practice.

Most follow-up questions are not meant to trap you. They are usually checking whether your first answer had enough depth. The safest response is to narrow your focus, answer only the asked part, and avoid restarting the whole topic from the beginning.

Also watch for this recurring trap: sending email or push notifications directly inside application requests. If you consciously avoid that mistake when handling follow-ups, your answer quality improves immediately.

โฑ๏ธ 30-Minute Revision Plan

TimeRevision Goal
5 minRecall definitions, formulas, and the most likely trap areas.
10 minRehearse 2-3 spoken answers out loud using interview language.
10 minAttempt the linked quiz and review every explanation, not just the score.
5 minWrite down one weak concept and one follow-up question to revisit later.

โœ… Last-Minute Revision Checklist

  • Keep notification creation off the synchronous user request path.
  • Respect user preferences before delivery.
  • Separate per-channel workers and retry logic.
  • Store a dedupe key or idempotency key.
  • Track delivery status for support and analytics.

๐Ÿงท Memory Hooks Before The Round

  • Remember this: Keep notification creation off the synchronous user request path.
  • Remember this: Respect user preferences before delivery.
  • Remember this: Separate per-channel workers and retry logic.
  • Do not phrase it vaguely: Sending email or push notifications directly inside application requests.
  • Do not phrase it vaguely: Treating provider success as the same thing as user delivery.

These hooks are useful right before an assessment because they compress the topic into a few high-signal reminders. If you can recall the key distinction, the main use case, and the most common trap, you can reconstruct a solid answer under pressure.

โš ๏ธ Common Mistakes

  • Sending email or push notifications directly inside application requests.
  • Treating provider success as the same thing as user delivery.
  • Ignoring quiet hours, opt-outs, or locale-specific templates.
  • Assuming exactly-once delivery across external vendors.

๐Ÿ“ Final Summary

This topic matters because a notification system sounds straightforward until you account for preferences, per-channel throttling, duplicates, retries, and third-party providers. That is exactly why interviewers ask it

In interviews, the safest path is to start with the event source and define the canonical notification event schema.

If you can explain the trade-off, the edge case, and the practical example, you usually outperform candidates who only memorize definitions.

Share this article

Share on TwitterShare on LinkedInShare on FacebookShare on WhatsAppShare on Email

Test your knowledge

Take a quick quiz based on this chapter.

mediumSystem Design
Quiz: Design a Notification System
6 questions8 min

Explore System Design

Continue with System Design topics like scaling, distributed systems, load balancing, architecture across courses, notes, and mock tests.

Study courseSystem Design - Start-Level Prep courseStudy notesSystem Design notesMock testsSystem Design mock tests
Lesson 2 of 4 in 2. Must-Know Case Studies
Previous in 2. Must-Know Case Studies
Design a Rate Limiter: Buckets, Counters, and Real Trade-Offs
Next in 2. Must-Know Case Studies
Design a URL Shortener: IDs, Redirects, Caching, and Expiry
โ† Back to System Design - Start-Level Prep
Back to moduleCategories