Beginner55 min

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

API GatewayLambdaSNSSQSSESDynamoDBDAXPinpoint

Challenge Details

Path
System Design Fundamentals
Difficulty
Beginner
Duration
55 min
Plan
Starter

Architecture Patterns You'll Learn

fan-outidempotent deliverydead-letter queuefilter policyrate limitingbackpressure

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.

Ready 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