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 takenThe worked solution
written by a person · not a gradeScore 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