Basics 2 Flashcards
Design Notification System (email/SMS push) Design a Caching System (e.g., using Redis) Design a Key-Value Store (like Redis) Design a Message Queue (like Kafka-lite) (56 cards)
What is a Notification System?
A system that sends messages to users through various channels like email, SMS, or push notifications.
What are the advantages of a Notification System?
Enhances user engagement, provides timely information, and supports multiple communication channels.
What are the disadvantages of a Notification System?
Can be intrusive if overused and requires handling user preferences and delivery failures.
What are best practices when designing a Notification System?
Implement user preferences, retry mechanisms, and support for multiple channels.
What are common use cases for a Notification System?
Order confirmations, alerts, reminders, and promotional messages.
How does a Notification System impact system design?
Requires integration with third-party services, handling asynchronous processing, and ensuring message delivery.
Give an example of a Notification System.
Services like Twilio, Firebase Cloud Messaging, and Amazon SNS provide notification capabilities.
What are the architectural components of a Notification System?
Includes message queues, worker services, channel-specific gateways, and user preference management.
How can performance be ensured in a Notification System?
Use asynchronous processing, scalable infrastructure, and efficient queuing mechanisms.
How can fault tolerance be added to a Notification System?
Implement retries, fallback channels, and monitor delivery statuses.
How is monitoring and debugging handled in a Notification System?
Track delivery metrics, bounce rates, and user engagement; log errors for analysis.
What is a real-world tradeoff in Notification Systems?
Balancing timely delivery with user preferences and avoiding notification fatigue.
What is a common interview question on Notification Systems?
Design a notification system supporting email, SMS, and push—how would you handle retries and user preferences?
What is a potential gotcha in Notification Systems?
Failing to manage user preferences can lead to compliance issues and user dissatisfaction.
What is a Caching System?
A system that stores frequently accessed data in a temporary storage layer to improve performance.
What are the advantages of a Caching System?
Reduces latency, decreases load on primary data stores, and improves application responsiveness.
What are the disadvantages of a Caching System?
Can lead to stale data if not managed properly and adds complexity to data consistency.
What are best practices when designing a Caching System?
Implement appropriate eviction policies, use TTLs, and ensure cache consistency with the data source.
What are common use cases for a Caching System?
Database query results, session data, and frequently accessed resources.
How does a Caching System impact system design?
Requires consideration of data consistency, cache invalidation strategies, and memory management.
Give an example of a Caching System.
Redis and Memcached are popular in-memory caching systems.
What are the architectural components of a Caching System?
Includes cache servers, client libraries, and integration with application logic.
How can performance be ensured in a Caching System?
Use in-memory storage, optimize cache hit rates, and monitor cache performance metrics.
How can fault tolerance be added to a Caching System?
Implement replication, use distributed caching, and have fallback mechanisms to the primary data store.