Notebook
System Design
All lessons in one chapter28
- 1Back of the Envelope EstimationIntroductionBack-of-the-envelope estimation is a crucial skill in system design interviews. It involves making quick, rough calculations to assess system capacity or performance. According to Jeff…2 min
- 2Scale from Zero to Millions of UsersIntroductionScaling a system to support millions of users is a complex, iterative journey requiring refinement and optimization. This chapter outlines how to begin with a single server setup and…5 min
- 3A Framework for System Design InterviewsIntroductionSystem design interviews are a key part of the hiring process, simulating real-life problem-solving scenarios. These interviews evaluate not just technical skills but also collaboration,…2 min
- 4Design a Rate LimiterIntroductionThis chapter explores the design and implementation of a rate limiter—a system component used to control traffic rates sent by clients or services. Rate limiters are crucial for…2 min
- 5Design Consistent HashingIntroductionThis chapter explores consistent hashing, a technique essential for achieving horizontal scaling by efficiently distributing requests and data across servers. It minimizes data…2 min
- 6Design a Key-Value StoreIntroductionA key-value store is a type of non-relational database where data is stored as key-value pairs. Each key is unique, and values are accessed using these keys. This chapter details how to…6 min
- 7Design a Unique ID Generator in Distributed SystemsIntroductionThis chapter addresses the challenge of designing a unique ID generator for distributed systems. Traditional auto-increment keys are unsuitable in distributed environments due to…2 min
- 8Design a URL ShortenerIntroductionThis chapter discusses the design of a URL shortening service like TinyURL. The system's main goals include URL shortening, redirecting, and high scalability to handle large traffic…2 min
- 9Design a Web CrawlerIntroductionA web crawler, also known as a spider or robot, is used to discover and collect web content, such as web pages, images, and videos. This chapter focuses on designing a scalable web…3 min
- 10Design a Notification SystemIntroductionA notification system is essential for modern applications, providing timely updates like product notifications, events, offers, and alerts. Notifications can be sent through:Push…2 min
- 11Design a News Feed SystemIntroductionA news feed system displays a constantly updating list of posts (status updates, photos, videos, and links) from a user’s connections. Examples include Facebook’s news feed, Instagram’s…3 min
- 12Design a Chat SystemIntroductionA chat system supports real-time messaging between users. This chapter focuses on designing a chat app that includes:One-on-One ChatGroup Chat (max 100 users)Online Presence…3 min
- 13Design a Search Autocomplete SystemIntroductionAutocomplete, also known as typeahead or incremental search, provides real-time suggestions to users as they type in search boxes. The system must efficiently deliver top-k relevant and…3 min
- 14Design YouTubeIntroductionYouTube is a massive video streaming platform supporting video uploads, playback, and various interactions. This chapter focuses on designing a scalable video streaming system with the…3 min
- 15Design Google DriveIntroductionGoogle Drive is a cloud-based file storage and synchronization service that allows users to store, access, and share files from various devices. This chapter discusses designing a…4 min
- 16Proximity ServiceIntroductionA proximity service is designed to find nearby locations, such as restaurants, hotels, gas stations, and other businesses. This functionality is used in applications like Google Maps and…6 min
- 17Nearby FriendsIntroductionThis chapter focuses on designing a scalable backend for an application which enables user to share their location and discover friends who are nearby.The major difference with the…8 min
- 18Google MapsIntroductionWe'll design a simple version of Google Maps.Some facts about google maps:Started in 2005Provides various services - satellite imagery, street maps, real-time traffic conditions, route…9 min
- 19Distributed Message QueueIntroductionWe'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…16 min
- 20Metrics Monitoring and Alerting System IntroductionIntroductionThis 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…11 min
- 21Ad Click Event AggregationIntroductionDigital 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…13 min
- 22Hotel Reservation SystemIntroductionIn 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…12 min
- 23Distributed Email ServiceIntroductionWe'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…9 min
- 24S3-like Object StorageIntroductionIn this chapter, we'll be designing an object storage service, similar to Amazon S3.Storage systems fall into three broad categories:Block storageFile storageObject storageBlock storage…12 min
- 25Real-time Gaming LeaderboardIntroductionWe are going to design a leaderboard for an online mobile game:Step 1: Understand the Problem and Establish Design ScopeC: How is the score calculated for the leaderboard?I: User gets a…10 min
- 26Payment SystemIntroductionWe'll design a payment system in this chapter, which underpins all of modern e-commerce.A payment system is used to settle financial transactions, transferring monetary value.Step 1:…10 min
- 27Digital WalletIntroductionPayment platforms usually have a wallet service, where they allow clients to store funds within the application, which they can withdraw later.You can also use it to pay for goods &…12 min
- 28Stock ExchangeIntroductionWe'll design an electronic stock exchange in this chapter.Its basic function is to efficiently match buyers and sellers.Major stock exchanges are NYSE, NASDAQ, among others.Step 1:…15 min
