Notification Service design.
MediumLet's imagine we are building a robust notification service. Think about all the different ways applications need to inform users: emails, SMS messages, push notifications, in-app alerts, and even, potentially, old-school methods like printing physical letters. Our notification service should be able to handle all these various channels while being highly scalable, reliable, and easy to extend with new notification methods in the future. The service also needs to handle different content formats (plain text, HTML, etc.) and potentially personalize the messages based on user preferences and data. Let's design a flexible and maintainable system that supports this diverse range of notification requirements. Imagine a social media platform where users want to receive real-time updates, promotional offers, security alerts, and direct messages—all through different channels and in customized formats. This notification service will be the core component responsible for delivering these messages.
Requirements
Think like an Architect
Before revealing the requirements, imagine you're in the interview right now."How would you clarify the scope with your interviewer?"