✏️
Grokking Modern System Design Interview
CtrlK
  • System Design Interviews
    • What Is a System Design Interview?
    • How to Prepare for Success
    • How to Perform Well
  • Abstractions
    • Why Are Abstractions Important?
    • Network Abstractions: Remote Procedure Calls
    • Spectrum of Consistency Models
    • The Spectrum of Failure Models
  • Non-functional System Characteristics
    • Availability
    • Reliability
    • Scalability
    • Maintainability
    • Fault Tolerance
  • Back-of-the-envelope Calculations
    • Put Back-of-the-envelope Numbers in Perspective
    • Examples of Resource Estimation
  • Building Blocks
    • Introduction to Building Blocks for Modern System Design
  • Domain Name System
    • Introduction to Domain Name System (DNS)
    • How the Domain Name System Works
  • Load Balancers
    • Introduction to Load Balancers
    • Global and Local Load Balancing
    • Advanced Details of Load Balancers
  • Databases
    • Introduction to Databases
    • Types of Databases
      • Relational Database
      • Document-Oriented Database
      • Graph Database
      • Key-Value Database
      • Time Series Database
      • Wide-Column Database
    • Data Replication
      • What is a quorum?
      • What is quorum in distributed systems?
    • Data Partitioning
    • Trade-offs in Databases
    • Relational Databases
    • When should you pick a relational database?
    • NoSQL Databases - Introduction
    • Features of NoSQL Databases
    • When to pick a NoSQL Database?
    • Is NoSQL More Performant Than SQL?
    • Polyglot Persistence
    • Multi-Model Databases
    • Eventual Consistency
    • Strong Consistency
    • CAP Theorem
  • Key-value Store
    • Design of a Key-value Store
    • Versioning Data and Achieving Configurability
    • Ensure Scalability and Replication
    • Enable Fault Tolerance and Failure Detection
    • System Design: The Key-value Store
  • Content Delivery Network (CDN)
    • System Design: The Content Delivery Network (CDN)
    • Introduction to a CDN
    • Design of a CDN
    • In-depth Investigation of CDN: Part 1
    • In-depth Investigation of CDN: Part 2
    • Evaluation of CDN's Design
  • Sequencer
    • System Design: Sequencer
    • Design of a Unique ID Generator
    • Unique IDs with Causality
  • Distributed Monitoring
    • System Design: Distributed Monitoring
    • Introduction to Distributed Monitoring
    • Prerequisites of a Monitoring System
  • Monitor Server-side Errors
    • Design of a Monitoring System
    • Detailed Design of a Monitoring System
    • Visualize Data in a Monitoring System
  • Monitor Client-side Errors
    • Focus on Client-side Errors in a Monitoring System
    • Design of a Client-side Monitoring System
  • Distributed Cache
    • System Design: The Distributed Cache
    • Background of Distributed Cache
    • High-level Design of a Distributed Cache
    • Detailed Design of a Distributed Cache
    • Evaluation of a Distributed Cache's Design
    • Memcached versus Redis
  • Distributed Messaging Queue
    • System Design: The Distributed Messaging Queue
    • Requirements of a Distributed Messaging Queue’s Design
    • Considerations of a Distributed Messaging Queue’s Design
    • Design of a Distributed Messaging Queue: Part 1
    • Design of a Distributed Messaging Queue: Part 2
    • Evaluation of a Distributed Messaging Queue’s Design
    • Quiz on the Distributed Messaging Queue’s Design
  • Pub-sub
    • System Design: The Pub-sub Abstraction
    • Introduction to Pub-sub
    • Design of a Pub-sub System
  • Rate Limiter
    • System Design: The Rate Limiter
    • Requirements of a Rate Limiter’s Design
    • Design of a Rate Limiter
    • Rate Limiter Algorithms
    • Quiz on the Rate Limiter’s Design
  • Blob Store
    • System Design: A Blob Store
    • Requirements of a Blob Store's Design
    • Design of a Blob Store
    • Design Considerations of a Blob Store
    • Evaluation of a Blob Store's Design
    • Quiz on the Blob Store's Design
  • Distributed Search
    • System Design: The Distributed Search
    • Requirements of a Distributed Search System's Design
    • Indexing in a Distributed Search
    • Design of a Distributed Search
    • Scaling Search and Indexing
    • Evaluation of a Distributed Search's Design
  • Distributed Logging
    • System Design: Distributed Logging
    • Introduction to Distributed Logging
    • Design of a Distributed Logging Service
  • Distributed Task Scheduler
    • System Design: The Distributed Task Scheduler
    • Requirements of a Distributed Task Scheduler's Design
    • Design of a Distributed Task Scheduler
    • Design Considerations of a Distributed Task Scheduler
    • Evaluation of a Distributed Task Scheduler's Design
  • Sharded Counters
    • System Design: The Sharded Counters
    • High-level Design of Sharded Counters
    • Detailed Design of Sharded Counters
    • Quiz on the Sharded Counters' Design
  • Concluding the Building Blocks Discussion
    • Wrapping Up the Building Blocks Discussion
    • The RESHADED Approach for System Design
  • Design YouTube
    • System Design: YouTube
    • Requirements of YouTube's Design
    • Design of YouTube
    • Evaluation of YouTube's Design
    • The Reality Is More Complicated
    • Quiz on YouTube's Design
  • Design Quora
    • System Design: Quora
    • Requirements of Quora's Design
    • Initial Design of Quora
    • Final Design of Quora
    • Evaluation of Quora’s Design
  • Design Google Maps
    • System Design: Google Maps
    • Requirements of Google Maps' Design
    • Design of Google Maps
    • Challenges of Google Maps' Design
    • Detailed Design of Google Maps
    • Evaluation of Google Maps' Design
  • Design a Proximity Service / Yelp
    • System Design: Yelp
    • Requirements of Yelp’s Design
    • Design of Yelp
    • Design Considerations of Yelp
    • Quiz on Yelp's Design
  • Design Uber
    • System Design: Uber
    • Requirements of Uber’s Design
    • High-level Design of Uber
    • Detailed Design of Uber
    • Payment Service and Fraud Detection in Uber Design
    • Evaluation of Uber’s Design
    • Quiz on Uber's Design
  • Design Twitter
    • System Design: Twitter
    • Requirements of Twitter’s Design
    • High-level Design of Twitter
    • Detailed Design of Twitter
    • Client-side Load Balancer for Twitter
    • Quiz on Twitter's Design
  • Design Newsfeed System
    • System Design: Newsfeed System
    • Requirements of a Newsfeed System’s Design
    • Design of a Newsfeed System
    • Evaluation of a Newsfeed System’s Design
  • Design Instagram
    • System Design: Instagram
    • Requirements of Instagram’s Design
    • Design of Instagram
    • Detailed Design of Instagram
    • Quiz on Instagram’s Design
  • Design a URL Shortening Service / TinyURL
    • System Design: TinyURL
    • Requirements of TinyURL's Design
    • Design and Deployment of TinyURL
    • Encoder for TinyURL
    • Evaluation of TinyURL's Design
    • Quiz on TinyURL's Design
  • Design a Web Crawler
    • System Design: Web Crawler
    • Requirements of a Web Crawler's Design
    • Design of a Web Crawler
    • Design Improvements of a Web Crawler
    • Evaluation of Web Crawler's Design
  • Design WhatsApp
    • System Design: WhatsApp
    • Requirements of WhatsApp’s Design
    • High-level Design of WhatsApp
    • Detailed Design of WhatsApp
    • Evaluation of WhatsApp’s Design
    • Quiz on WhatsApp’s Design
  • Design Typeahead Suggestion
    • System Design: The Typeahead Suggestion System
    • Requirements of the Typeahead Suggestion System’s Design
    • High-level Design of the Typeahead Suggestion System
    • Data Structure for Storing Prefixes
    • Detailed Design of the Typeahead Suggestion System
    • Evaluation of the Typeahead Suggestion System’s Design
    • Quiz on the Typeahead Suggestion System’s Design
  • Design a Collaborative Document Editing Service / Google Docs
    • System Design: Google Docs
    • Requirements of Google Docs’ Design
    • Design of Google Docs
    • Concurrency in Collaborative Editing
    • Evaluation of Google Docs’ Design
  • Spectacular Failures
    • Introduction to Distributed System Failures
    • Facebook, WhatsApp, Instagram, Oculus Outage
    • AWS Kinesis Outage Affecting Many Organizations
    • AWS Wide Spread Outage
  • Conclusions
Powered by GitBook
On this page

Was this helpful?

Spectacular Failures

Introduction to Distributed System FailuresFacebook, WhatsApp, Instagram, Oculus OutageAWS Kinesis Outage Affecting Many OrganizationsAWS Wide Spread Outage
PreviousEvaluation of Google Docs’ DesignNextIntroduction to Distributed System Failures

Was this helpful?