Distributed Email Service
We'll design a distributed email service, similar to gmail in this chapter.
In 2020, gmail had 1.8bil active users, while Outlook had 400mil users worldwide.
Step 1 - Understand the Problem and Establish Design Scope
C: How many users use the system?
I: 1bil users
C: I think following features are important - auth, send/receive email, fetch email, filter emails, search e
Hotel Reservation System
In this chapter, we're designing a hotel reservation system, similar to Marriott International.
Applicable to other types of systems as well - Airbnb, flight reservation, movie ticket booking.
Step 1 - Understand the Problem and Establish Design Scope
Before diving into designing the system, we should ask the interviewer questions to clarify the scope:
C: What is the scal
Ad Click Event Aggregation
Digital advertising is a big industry with the rise of Facebook, YouTube, TikTok, etc.
Hence, tracking ad click events is important. In this chapter, we explore how to design an ad click event aggregation system at Facebook/Google scale.
Digital advertising has a process called real-time bidding (RTB), where digital advertising inventory is bought and sold:
Speed of RTB
Metrics Monitoring and Alerting System
This chapter focuses on designing a highly scalable metrics monitoring and alerting system, which is critical for ensuring high availability and reliability.
Step 1 - Understand the Problem and Establish Design Scope
A metrics monitoring system can mean a lot of different things - eg you don't want to design a logs aggregation system, when the interviewer is
Distributed Message Queue
We'll be designing a distributed message queue in this chapter.
Benefits of message queues:
Decoupling - Eliminates tight coupling between components. Let them update separately.
Improved scalability - Producers and consumers can be scaled independently based on traffic.
Increased availability - If one part of the system goes down, other parts continue interacting with t