Interview Guides
Grokking the Advanced System Design Interview
How real distributed systems work: Dynamo, Cassandra, Kafka, Chubby, GFS, HDFS and BigTable, followed by 20 reusable system design patterns.
Introduction
Dynamo
- 2Dynamo: IntroductionLet’s explore Dynamo and its use cases.
- 3High-level ArchitectureThis lesson gives a brief overview of Dynamo’s architecture.
- 4Data PartitioningLet’s learn how Dynamo distributes its data across a set of nodes.
- 5ReplicationLet’s learn how Dynamo replicates its data and handles temporary failures through replication.
- 6Vector Clocks and Conflicting DataLet’s learn how Dynamo uses vector clocks to keep track of data history and reconcile divergent histories at read time.
- 7The Life of Dynamo’s put() & get() OperationsLet’s learn how Dynamo handles get() and put() requests.
- 8Anti-entropy Through Merkle TreesLet's understand how Dynamo uses Merkle trees for anti-entropy operations.
- 9Gossip ProtocolLet's explore how Dynamo uses gossip protocol to keep track of the cluster state.
- 10Dynamo Characteristics and CriticismLet's explore the characteristics and the criticism of Dynamo's architecture.
- 11Summary: DynamoHere is a quick summary of Dynamo for you!
Cassandra
- 12Cassandra: IntroductionLet’s explore Cassandra and its use cases.
- 13High-level ArchitectureThis lesson gives a brief overview of Cassandra’s architecture.
- 14ReplicationLet's explore Cassandra's replication strategy.
- 15Cassandra Consistency LevelsLet's explore how Cassandra manages data consistency.
- 16GossiperLet's explore how Cassandra uses gossip protocol to keep track of the state of the system.
- 17Anatomy of Cassandra's Write OperationLet’s dig deeper into the components involved in Cassandra’s write path.
- 18Anatomy of Cassandra's Read OperationLet’s explore Cassandra’s read path.
- 19CompactionLet's explore how Cassandra handles compaction.
- 20TombstonesLet's explore how Tombstones work in Cassandra.
- 21Summary: CassandraHere is a quick summary of Cassandra for you!
Kafka
- 22Messaging Systems: IntroductionThis lesson gives a brief overview of messaging systems.
- 23Kafka: IntroductionThis lesson presents a brief introduction and common use cases of Kafka.
- 24High-level ArchitectureThis lesson gives a brief overview of Kafka’s architecture.
- 25Kafka: Deep DiveAs of now, we have discussed the core concepts of Kafka. Let us now throw some light on the workflow of Kafka.
- 26Consumer GroupsLet's explore the role of consumer groups in Kafka.
- 27Kafka WorkflowLet's explore different messaging workflows that Kafka offers.
- 28Role of ZooKeeperLet's delve into how Kafka interacts with ZooKeeper.
- 29Controller BrokerThis lesson will explain the role of the controller broker in Kafka.
- 30Kafka Delivery SemanticsLet's explore what message delivery guarantees Kafka provides to its clients.
- 31Kafka CharacteristicsLet's explore different characteristics of Kafka.
- 32Summary: KafkaHere is a quick summary of Kafka for you!
Chubby
- 33Chubby: IntroductionThis lesson will introduce Chubby and its use cases.
- 34High-level ArchitectureThis lesson gives a brief overview of Chubby’s architecture.
- 35Design RationaleLet's explore the rationale behind Chubby's architecture.
- 36How Chubby WorksLet’s learn how Chubby works.
- 37File, Directories, and HandlesLet's explore how Chubby works with files, directories, and handles.
- 38Locks, Sequencers, and Lock-delaysLet's explore how Chubby implements Locks and Sequencers.
- 39Sessions and EventsThis lesson will explain Chubby sessions and what different Chubby events are.
- 40Master Election and Chubby EventsThis lesson will explain what actions a newly elected master performs. Additionally, we will look into different Chubby events.
- 41CachingLet's learn how Chubby implements its cache.
- 42DatabaseLet's learn how Chubby uses a database for storage.
- 43Scaling ChubbyThis lesson will explain different techniques that Chubby uses for scaling.
- 44Summary: ChubbyHere is a quick summary of Chubby for you!
Google File System (GFS)
- 45Google File System: IntroductionLet’s explore Google File System and its use cases.
- 46High-level ArchitectureThis lesson gives a brief overview of GFS’s architecture.
- 47Single Master and Large Chunk SizeThis lesson will explain why Chubby has a single master and a large chunk size.
- 48MetadataLet's explore how GFS manages the filesystem metadata.
- 49Master OperationsLet's learn the different operations performed by the master.
- 50Anatomy of a Read OperationLet’s learn how GFS handles a read operation.
- 51Anatomy of a Write OperationLet’s learn how GFS handles a write operation.
- 52Anatomy of an Append OperationLet’s learn how GFS handles an append operation.
- 53GFS Consistency Model and SnapshottingThis lesson will explain how GFS handles the consistency of its operations and data. Additionally, we will look into how GFS implements a snapshotting operation.
- 54Fault Tolerance, High Availability, and Data IntegrityLet's learn how GFS implements fault tolerance, high availability, and data integrity.
- 55Garbage CollectionLet's learn how GFS implements garbage collection.
- 56Criticism on GFSHere is the summary of criticism on GFS's architecture.
- 57Summary: GFSHere is a quick summary of Google File System for you!
Hadoop Distributed File System (HDFS)
- 58Hadoop Distributed File System: IntroductionThis lesson gives a brief introduction to the Hadoop Distributed File System.
- 59High-level ArchitectureThis lesson gives a brief overview of HDFS’s architecture.
- 60Deep DiveLet's explore some of HDFS's design components.
- 61Anatomy of a Read Operation
- 62Anatomy of a Write OperationThis lesson explains how HDFS handles a write operation.
- 63Data Integrity & CachingLet's explore how HDFS ensures data integrity and implements caching.
- 64Fault ToleranceLet's explore what techniques HDFS uses for fault tolerance.
- 65HDFS High Availability (HA)Let's learn how HDFS achieves high availability.
- 66HDFS CharacteristicsThis lesson will explore some important aspects of HDFS architecture.
- 67Summary: HDFSHere is a quick summary of HDFS for you!
BigTable
- 68BigTable: IntroductionLet’s explore Bigtable and its use cases.
- 69BigTable Data ModelThis lesson explains how BigTable models its data.
- 70System APIsLet's explore BigTable APIs.
- 71Partitioning and High-level ArchitectureThis lesson gives a brief overview of BigTable's architecture and its data partitioning scheme.
- 72SSTableLet's learn how Tablets are stored in SSTables.
- 73GFS and ChubbyLet's explore how BigTable interacts with GFS and Chubby.
- 74Bigtable ComponentsLet's explore the components that constitute BigTable.
- 75Working with Tablets
- 76The Life of BigTable's Read & Write OperationsLet's explore how BigTable handles its read and write operations.
- 77Fault Tolerance and CompactionLet's learn how BigTable handles fault tolerance and data compaction.
- 78BigTable RefinementsThis lesson will explore different refinements that BigTable implemented.
- 79BigTable CharacteristicsThis lesson will explore some miscellaneous characteristics of BigTable.
- 80Summary: BigTableHere is a quick summary of BigTable for you!
System Design Patterns
- 81Introduction: System Design PatternsThis lesson gives a brief overview of the system design patterns that we will be discussing in the following lessons.
- 821. Bloom FiltersLet's learn about Bloom filters and how to use them.
- 832. Consistent HashingLet's learn about Consistent Hashing and its usage.
- 843. QuorumLet's learn about Quorum and its usage.
- 854. Leader and FollowerLet's learn about leader and followers patterns and its usage in distributed systems.
- 865. Write-ahead LogLet's learn about write-ahead logging and its usage.
- 876. Segmented LogLet's learn about segmented log and its usage.
- 887. High-Water MarkLet's learn about high-water mark and its usage.
- 898. LeaseLet's learn about lease and its usage.
- 909. HeartbeatLet's learn about heartbeat and its usage.
- 9110. Gossip ProtocolLet's learn about gossip protocol and its usage.
- 9211. Phi Accrual Failure DetectionLet's learn about Phi Accrual Failure Detection algorithm and its usage.
- 9312. Split BrainLet's learn about split-brain and how to handle it.
- 9413. FencingLet's learn about fencing and its usage.
- 9514. ChecksumLet's learn about checksum and its usage.
- 9615. Vector ClocksLet's learn about vector clocks and their usage.
- 9716. CAP TheoremLet's learn about the CAP theorem and its usage in distributed systems.
- 9817. PACELC TheoremLet's learn about PACELC theorem and its usage.
- 9918. Hinted HandoffLet's learn about hinted handoff and its usage.
- 10019. Read RepairLet's learn about read repair and its usage.
- 10120. Merkle TreesLet's learn about Merkle trees and their usage.