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
Interview Simulation
Experience a realistic interview conversation. The interviewer will ask clarifying questions,and you'll reveal your understanding of the requirements.
Let's start by understanding the scope. What are the core functionalities this system needs to provide?
💡 Interview Tip
Identify the Actors (Who uses the system?) and their Use Cases (What are they trying to achieve?). Start with the 'Happy Path' scenarios.