Skip to content

Notebook

System Design

System Design icon28 lessonsin 1 chapterabout 187 min in totalStart the first lesson

All lessons in one chapter28

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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