Problem statement
Design the backend for a push-notification platform (think the notification service behind a large consumer app) that lets internal product teams send messages to end users across mobile push, email, and SMS from a single API.
Operating context. Around 40 million registered users, each with 1–3 registered devices. Product teams fire two kinds of traffic: steady transactional sends (password resets, order updates) at roughly 3,000 requests/sec, plus a few scheduled marketing campaigns per day that fan out to 5–20 million recipients within a tight delivery window. A single logical send may expand to several physical deliveries once channel preferences and multiple devices are applied. Downstream providers (APNs, FCM, an email ESP, an SMS aggregator) each have their own rate ceilings, per-message failure modes, and asynchronous delivery-receipt callbacks.
Out of scope. The end-user notification-preference UI, in-app notification inboxes, message content authoring / WYSIWYG editors, analytics dashboards and reporting, and cross-channel billing. Assume separate teams own those.
What to produce. A high-level architecture covering: the send-request API and its request path; the device-token registry and how tokens are kept fresh; how a template is rendered and per-user/per-channel rate limits are applied; how a single send fans out to the right channels and devices and is dispatched to each provider with retries and backoff; how duplicate sends are suppressed so a client retry or a campaign replay does not double-notify a user; and how asynchronous delivery receipts flow back to update per-message status. Sketch the major components and the flow between them; we will probe specifics in the checkpoints.
Requirements
This assessment is a Premium feature.
The statement above is free to read. The functional and non-functional requirements, and the graded canvas that scores your design against them, come with Premium.
Topics
- System Design HLD
- Infra Queue
- Scaling Fanout
- Reliability Idempotency
- Scaling Write-Heavy