1.
System Design Interviews
4 Lessons
Explore what System Design interviews involve, including essential preparation strategies, fundamental concepts, key resources, and tips to perform well.
Get familiar with System Design and the course structure, including prerequisites that set the foundation for mastering System Design interviews.
Grasp the fundamentals of abstractions in distributed systems, focusing on network abstraction, consistency, and failure models crucial for System Design.
4.
Non-functional System Characteristics
6 Lessons
Take a look at the key non-functional characteristics like availability, reliability, scalability, and fault tolerance in System Design.
5.
Back-of-the-envelope Calculations
2 Lessons
Learn how to estimate resource needs like servers, storage, and bandwidth using back-of-the-envelope calculations for System Design.
Explore the essential building blocks required for modern System Design, which will form the foundation for scalable systems later in the course.
7.
Domain Name System
2 Lessons
Discover how DNS works and its role in System Design, including detailed insights into its design and functionality.
Take a closer look at load balancers, their placement, and algorithms, including local and global load balancers and different tiers of load balancers.
Explore databases and their types, data replication, partitioning, and trade-offs essential for designing distributed systems.
Learn how to design a scalable key-value store, focusing on replication, versioning, and fault tolerance.
11.
Content Delivery Network  (CDN)
7 Lessons
Discover CDN design, content caching strategies, consistency, and techniques for efficient content delivery.
Learn how to design a sequencer for generating unique IDs, focusing on causality and consistency in distributed systems.
13.
Distributed  Monitoring
3 Lessons
Explore a distributed monitoring system’s basics, types, and metrics for effective monitoring.
14.
Monitor Server-side Errors
3 Lessons
Learn how to design a monitoring system and visualize it for tracking server-side errors in real-time.
15.
Monitor Client-side Errors
2 Lessons
Discover how to design a system to monitor client-side errors, ensuring robust and reliable applications.
16.
Distributed Cache
6 Lessons
Unpack the design of a distributed cache, focusing on high-level and detailed designs and evaluating its performance.
17.
Distributed Messaging Queue
7 Lessons
Examine the design of a distributed messaging queue, addressing requirements, design considerations, and performance evaluations.
Learn the design of a pub-sub system, focusing on how to implement and optimize this communication pattern in distributed systems.
Explore the design of a rate limiter, covering essential algorithms and considerations for managing traffic and ensuring system stability.
Learn how to design a blob store, focusing on scalability, storage, and performance evaluation.
21.
Distributed Search
6 Lessons
Step through distributed search design in stages, with a special focus on indexing, scaling, and replication.
22.
Distributed Logging
3 Lessons
Understand the importance and design of a distributed logging service, emphasizing capturing and analyzing logs across distributed systems.
23.
Distributed Task Scheduler
5 Lessons
Examine the design of a task scheduler addressing issues like prioritizing, task idempotency, queuing, and resource capacity optimization.
24.
Sharded Counters
4 Lessons
Get familiar with sharded counters and their importance, starting from high-level design and then pivoting to detailed System Design.
25.
Concluding the Building Blocks Discussion
4 Lessons
Wrap up the discussion on building blocks, evaluate your understanding using AI, and learn the RESHADED approach to tackle unseen System Design problems.
Learn YouTube System Design, starting with requirements, high-level and detailed design, evaluation of the design, and handling real-world complexities.
Explore the System Design of Quora incrementally by starting with key requirements and challenges in building a scalable Q&A platform.
28.
Design Google Maps
6 Lessons
Walk through the System Design of Google Maps, focusing on API design, scalability, finding optimal routes, and ETA computation.
29.
Design a Proximity Service / Yelp
5 Lessons
Take a closer look at the System Design of a proximity service like Yelp, addressing requirements like searching, scaling, and dynamic segments.
Understand how to design Uber, address requirements for ride-sharing platforms, detailed design, and fraud detection.
Learn Twitter System Design, covering aspects like user interaction, API design, caching, storage, and client-side load balancing.
32.
Design Newsfeed System
4 Lessons
Master newsfeed System Design, covering aspects like functional and non-functional requirements, storage schemas, newsfeed generation, and publishing.
33.
Design Instagram
5 Lessons
Explore Instagram’s System Design, covering API design, storage schema, and timeline generation using pull, push, and hybrid approaches.
34.
Design a URL Shortening Service / TinyURL
6 Lessons
Decode the System Design of a URL shortening service like TinyURL, emphasizing requirements like encoding, scalability, and high readability.
35.
Design a Web Crawler
5 Lessons
Explore the System Design of a web crawler, including its key components, such as a crawler, scheduler, HTML fetcher, storage, and crawling traps handler.
Take a look at WhatsApp System Design with an emphasis on its API design, high security, and low latency of client-server messages.
37.
Design Typeahead Suggestion
7 Lessons
Discover the typeahead suggestion System Design, covering aspects like efficient data structures and assemblers for updating suggestions.
38.
Design a Collaborative Document Editing Service / Google Docs
5 Lessons
Understand the System Design of Google Docs, using different techniques to address storage, collaborative editing, and concurrency issues.
39.
Spectacular Failures
4 Lessons
Learn how to avoid failures and outages by discussing case studies of real-world, large-scale distributed systems like Facebook, AWS, etc.
40.
Concluding Remarks
2 Lessons
Reflect on key takeaways, highlight unique aspects of each Design Problem, and get pointers on the next steps to master System Design.