You need to design a notification system that can send alerts via email, SMS, and push notifications. Which component is essential to handle different notification types efficiently?
Think about how to separate concerns for different notification channels.
A unified dispatcher allows the system to route notifications to the correct channel efficiently, supporting scalability and maintainability.
Your notification system must handle 10,000 notifications per second during peak hours. What is the best approach to estimate the required throughput capacity?
Consider factors that affect how many notifications can be sent per second.
Estimating throughput requires understanding message size, delivery latency, and concurrency limits to ensure the system can handle peak loads without delays.
Which tradeoff is true when choosing a push-based notification system over a pull-based one?
Think about how push and pull models handle message delivery and resource usage.
Push notifications reduce client polling but need persistent connections, which use more server resources. Pull models rely on client polling, increasing network traffic.
Which mechanism best ensures 'at least once' delivery guarantee for notifications?
Consider how to handle failures and retries to avoid lost messages.
Message queues with acknowledgments and retries ensure messages are delivered at least once, even if failures occur during transmission.
You want to prevent users from receiving more than 5 notifications per minute. Which component design best enforces this throttling?
Think about where and how to enforce limits to control notification flow.
A rate limiter component tracks how many notifications each user receives and blocks sending more than the allowed limit, ensuring throttling is enforced server-side.
