Design a notification system that delivers alerts to users across multiple channels: in-app, email, push notifications, and SMS.
The system should support different notification types (transactional, marketing, system alerts), user preferences for which channels to receive notifications on, and batching/deduplication to prevent notification fatigue.
Notification systems are at the heart of user engagement in modern applications. This challenge tests your ability to design event-driven architectures, handle fan-out at scale, and respect user preferences.
Evaluation criteria and weights will be revealed after you submit your solution. This ensures a fair assessment of your design skills.
Draw your architecture diagram, explain your design decisions, and get AI-powered feedback.
For the best experience, design challenges on a desktop or tablet — drawing the architecture on a phone is hard.