Which of the following lists contains the essential components needed to build a scalable notification system?
Think about components that handle user data, message queuing, sending notifications, and tracking results.
A notification system requires storing user info, queuing notifications for delivery, sending them out, and tracking analytics. Payment gateways or video streaming are unrelated.
You need to design the delivery service to handle millions of notifications per minute. Which approach best supports this scale?
Consider how to handle high volume and avoid bottlenecks.
Distributing work across multiple workers with a message queue allows parallel processing and better fault tolerance. Single servers or direct DB sending create bottlenecks. Hourly batching delays notifications.
What is a key tradeoff when choosing push notifications over pull notifications in a mobile app?
Think about how push notifications work compared to clients requesting updates.
Push notifications deliver messages instantly but need persistent connections or platform services. Pull notifications require clients to check periodically, causing latency but less connection overhead.
Which strategy best ensures 'at least once' delivery of notifications in a distributed system?
Consider how to handle failures and retries in message delivery.
Using a message queue that requires acknowledgement and retries on failure ensures notifications are delivered at least once. Sending once without retry risks loss. Batching without tracking loses reliability.
Your system sends 10 million notifications daily. Each notification log entry requires 1 KB of storage. How much storage is needed to keep logs for 30 days?
Calculate total notifications over 30 days and multiply by size per notification.
10 million notifications/day * 30 days = 300 million notifications. Each 1 KB means 300 million KB ≈ 300 GB.
