Notification System
Every modern application needs a notification system, but building one that reliably delivers millions of messages across push, email, SMS, and in-app channels without duplicates or delays is a serious distributed systems challenge. In this challenge, you will design a notification platform that accepts notification requests via an API, routes them through user preference filters, and dispatches them to the appropriate channel with retry logic and deduplication. The ingestion layer uses API Gateway and Lambda to accept notification requests, which are published to an SNS topic. Channel-specific SQS queues subscribe to SNS with filter policies, so push notifications, emails, and SMS each have independent processing pipelines with their own retry and dead-letter configurations. For email delivery, the architecture uses Amazon SES with bounce and complaint handling via SNS feedback notifications. SMS goes through Amazon SNS SMS. Push notifications route through Amazon Pinpoint. A critical design element is the deduplication layer: each notification gets an idempotency key stored in DynamoDB with a TTL, preventing duplicate sends when upstream systems retry. You will also design the user preference service that controls which channels a user has enabled, quiet hours, and frequency caps — stored in DynamoDB with a DAX cache layer for sub-millisecond reads. Rate limiting per user and per channel prevents notification fatigue and protects downstream providers. This challenge teaches multi-channel message routing, idempotent delivery guarantees, and backpressure handling.
AWS Services You'll Use
Challenge Details
- Path
- System Design Fundamentals
- Difficulty
- Beginner
- Duration
- 55 min
- Plan
- Starter
Architecture Patterns You'll Learn
Why This Challenge?
Unlike whiteboard exercises or multiple-choice quizzes, this challenge requires you to design a real architecture with actual AWS services, evaluate trade-offs, and defend your decisions. Our automated validators check your design against production-grade criteria. Complete it and it shows up in your verified portfolio with your architecture diagram and design rationale.
More from System Design Fundamentals
URL Shortener at Scale
Design a URL shortening service that handles millions of redirects per day with low latency.
Beginner · 45 minReal-Time Leaderboard
Architect a leaderboard system that ranks millions of players with instant score updates.
Beginner · 50 minReal-Time Chat System
Design a chat platform supporting one-on-one and group messaging with presence indicators.
Beginner · 60 minReady to design this for real?
Get the full scenario, design your architecture using real AWS services, and validate against production-grade criteria. Your completed challenge shows up in your verified portfolio.
Start Challenge