Learning on Web Dev Open is free for all.

Interview Prep · System DesignDesign a notification system
← System Design

Design a notification system

Medium40 minFree, no account

Three channels, four providers that fail differently, and a user who must not be spammed twice.


The question

Design the system every other service at your company uses to send a notification: push, email, or SMS.

It is a platform: other teams send it events, and it decides what to deliver, to whom, and how.

Functional
  • A service emits an event; the system decides the channels and sends.
  • Users have per-category, per-channel preferences and a quiet-hours window.
  • Templates with localisation.
  • Senders can see delivery status.
Non-functional
  • 500M notifications/day, very spiky: a marketing send is 50M in ten minutes.
  • Transactional notifications (a password reset) within seconds.
  • Never send the same notification twice.
  • A provider outage must not lose notifications.
40:00Commit to an answer before you open the solution. Reading it first teaches you to recognise good answers, which is not the skill being tested.

Stuck?

0 of 3 hints taken

The worked solution

written by a person · not a grade

Score yourself

0 of 5 marked
  • Separated ingest from send so producers never wait on a provider20
  • Split transactional from bulk and said what one queue costs25
  • Gave an idempotency scheme and was honest about the guarantee25
  • Handled provider failure modes specifically, including failover20
  • Put preferences, quiet hours and frequency caps in the right stage10

We run no AI here and nothing on this page grades you. The score is yours, and the useful number is the one you get on the same problem a month from now, cold.

kept in this browser only