Learning Paths
System Design Interview Roadmap
Decoding the Secrets of Successful System Design Interviews. This guide is a comprehensive resource that prepares budding software engineers for the challenges of system design interviews. It delves into the intricacies of designing robust, scalable, and efficient systems, mirroring real-world scenarios that are commonly encountered during technical interviews. With a balanced mix of theoretical knowledge and practical exercises, including case studies, this guide ensures a comprehensive understanding of system design principles.
Modules:
5
Image
Annual Subscription
Get instant access to all current and upcoming courses for one year.
OR
Lifetime Access - This Bundle
Get lifetime access to this bundle only.
Discounted Prices for Your Region
Certification on completing the course.
Learning Objectives
Comprehensive Coverage: The guide provides an in-depth understanding of system design principles, covering all essential topics required for technical interviews.
Real-World Scenarios: The guide includes real-world case studies and scenarios to help you understand what to expect and how to handle various situations during an interview.
Expert Guidance: Learn from industry professionals who have been on both sides of the interview table and can provide valuable insights and tips.
Flexibility: Learn at your own pace with this online guide, which you can access anytime, anywhere.
Community Support: Join a community of like-minded learners, share your doubts, discuss ideas, and learn together.
Career Advancement: This guide could be a stepping stone towards landing your dream job in the tech industry.
Path Contents
• 76 Chapters • 669 Lessons
Grokking System Design Fundamentals: Course for Beginners
Learn the core building blocks of scalable systems (load balancing, caching, databases, APIs) in a beginner-friendly, text-based course. From the creators of Grokking the System Design Interview.
• 27 Chapters • 171 Lessons
Hide Contents
1.

System Design Fundamentals

1 lesson

Introduction to System Design

Understand what a system design decides, why one server stops being enough, the parts a large system is built from, and why good designs differ.

Scalability

Understand scalability in system design, covering vertical and horizontal scaling, stateless servers, caching, replication, sharding, and bottlenecks.

Availability

Understand availability in system design, covering the nines, single points of failure, redundancy, failover, MTBF and MTTR, and SLIs, SLOs, and SLAs.

Latency and Performance

Understand latency and throughput in system design, covering where the time goes, p95 and p99 percentiles, caching, data locality, and load balancing.

Concurrency and Coordination

Understand concurrency in distributed systems, covering race conditions, locking, optimistic concurrency control, synchronization, and consistency models.

Monitoring and Observability

Understand monitoring and observability, covering metrics, structured logging, distributed tracing, alerting, anomaly detection, and dashboards.

Resilience and Error Handling

Understand resilience in system design, covering cascading failures, timeouts, retries with backoff, circuit breakers, bulkheads, and degradation.

Fault Tolerance vs. High Availability

Compare fault tolerance and high availability, covering their promises on downtime and data loss, the techniques each uses, and when to choose one.

Flashcards Review

Review the key terms of distributed systems with flashcards on scalability, availability, latency, concurrency, observability, and resilience.

Chapter Assessment

Test what you learned about distributed systems with questions on scalability, availability, latency, concurrency, observability, and resilience.

Introduction to Load Balancing

Understand what a load balancer does, how it picks a server, plus health checks, session persistence, TLS termination, and where to place one.

Load Balancing Algorithms

Compare nine load balancing algorithms, from round robin and least connections to IP hash and least response time, and learn how to choose one.

Uses of Load Balancing

Learn the five main uses of load balancing: high availability, horizontal scaling, zero-downtime deployments, attack mitigation, and SSL termination.

Load Balancer Types

Compare the types of load balancer: hardware, software, cloud, DNS, global server load balancing, hybrid, and the Layer 4 and Layer 7 split.

Stateless vs. Stateful Load Balancing

Compare stateless and stateful load balancing, how each one treats a client session, and what each approach costs in memory and flexibility.

High Availability and Fault Tolerance

Learn how to stop a load balancer from becoming a single point of failure, using redundancy, failover strategies, health checks, and shared state.

Scalability and Performance

Learn how to scale load balancers horizontally and vertically, manage connection and request rate limits, and limit their effect on latency.

Challenges of Load Balancers

Learn the seven common problems with load balancers: single points of failure, configuration, scaling limits, latency, sticky sessions, and cost.

Flashcards Review

Review the key ideas of load balancing with flashcards on the algorithms, health checks, load balancer types, the OSI layers, and sticky sessions.

Chapter Assessment

Test your understanding of load balancing: where a balancer sits, the algorithms, the types and OSI layers, stateless routing, and failover.

Introduction to Caching

Understand what a cache is, how hits and misses work, what eviction and staleness mean, where caches live in a system, and what caching costs.

Why is Caching Important?

Learn why caching matters: lower latency, better performance, less network load, higher scalability, and a smoother experience for users.

Types of Caching

Compare the types of caching, from in-memory, disk, and database caches to client-side, server-side, CDN, and DNS caching, and where each belongs.

Cache Replacement Policies

Compare the cache replacement policies that decide what to evict when a cache fills up: least recently used, least frequently used, FIFO, and random.

Cache Invalidation

Learn why invalidation matters, the write-through, write-around, write-back, and write-behind strategies, and methods like purge, ban, and TTL.

Cache Read Strategies

Compare the read-through and read-aside cache strategies, covering which component fetches data on a miss and what each one asks of your code.

Cache Coherence and Consistency Models

Understand cache coherence across many caches, and the consistency models that decide how quickly every copy of the data sees an update.

Caching Challenges

Learn the six common cache problems and their fixes: thundering herd, cache penetration, big keys, hot keys, cache pollution, and cache drift.

Cache Performance Metrics

Learn the metrics that show whether a cache is earning its place: hit rate, miss rate, cache size, and cache latency, and how to read them.

Flashcards Review

Review the key ideas of caching with flashcards on hits and misses, replacement policies, write strategies, invalidation, and the common problems.

Chapter Assessment

Test your understanding of caching: hits and misses, the caching types, replacement policies, write and read strategies, invalidation, and metrics.

Introduction to Databases

Understand what a database and a DBMS are, and the five differences between relational and non-relational systems that matter from the start.

SQL Databases

Understand how relational databases model data in tables with primary and foreign keys, what SQL does, the main engines, and where this model strains.

NoSQL Databases

Understand the six types of NoSQL database, the four you will be asked about, what you gain and give up, and when this model actually fits.

SQL vs. NoSQL

Compare SQL and NoSQL on data model and schema, scalability, consistency and transactions, query complexity, performance, and operational cost.

ACID vs BASE Properties

Understand the four ACID promises and the three BASE properties, why the C in ACID differs from the C in CAP, and how to choose between them.

Real-World Examples and Case Studies

See where SQL won, where NoSQL won, and where systems used both, and learn what the pattern across those choices tells you about your own.

SQL Normalization and Denormalization

Understand how normalization splits data to remove duplication, how denormalization brings it back for cheap reads, and the trade between them.

In-Memory Database vs. On-Disk Database

Compare in-memory and on-disk databases on speed, durability, and cost, and learn which kinds of workload belong in each one.

Data Replication vs. Data Mirroring

Compare data replication with data mirroring, learn the five differences between them, and see why many systems end up using both.

Database Federation

Understand how database federation presents several independent databases as one, how a federated query actually runs, and what it suits.

Flashcards Review

Review the key ideas of databases with flashcards on tables and keys, the NoSQL types, ACID and BASE, normalization, and federation.

Chapter Assessment

Test your understanding of databases: the relational model, the NoSQL types, SQL versus NoSQL, ACID and BASE, normalization, and federation.

Batch Processing vs. Stream Processing

Compare batch and stream processing on when each one handles data, their key differences, and how to pick one for a given workload.

XML vs. JSON

Compare XML and JSON as data exchange formats, covering syntax, size, and readability, and learn which one suits which kind of interface.

Synchronous vs. Asynchronous Communication

Compare synchronous and asynchronous communication, what waiting for an answer costs a system, and how to decide for each hop in a request.

Push vs. Pull Notification Systems

Compare push and pull notification systems on who starts the conversation, the delay a user sees, and the load each model puts on servers.

Microservices vs. Serverless Architecture

Compare microservices and serverless architecture on who runs the code, how each one scales and is billed, and when each model is the better fit.

Message Queues vs. Service Bus

Compare a message queue with a service bus, see what a bus adds beyond carrying messages, and learn which middle piece a system needs.

Stateful vs. Stateless Architecture

Compare stateful and stateless architecture, see where the state goes once servers stop holding it, and learn what each choice costs.

Event-Driven vs. Polling Architecture

Compare event-driven and polling architecture on how one part learns that something changed, the delay each adds, and what each one costs.

Flashcards Review

Review this chapter with flashcards on all eight comparisons, from batch and stream processing to event-driven and polling architecture.

Chapter Assessment

Test your understanding of the eight comparisons: batch and stream, XML and JSON, sync and async, push and pull, and stateful and stateless.
Grokking the System Design Interview
The original system design interview course from DesignGurus. Master scalable systems, critical trade-offs, and 15+ real-world design problems with a repeatable interview framework.
• 4 Chapters • 82 Lessons
Hide Contents

Importance of Discussing Trade-offs

Demonstrating trade-offs shows maturity, critical thinking, and real-world design skills crucial for scalable, practical system architecture.

Latency vs Throughput

Understand the difference between latency and throughput, and explore strategies to optimize response time and data processing capacity in systems.

Horizontal vs Vertical Scaling

Proxy vs. Reverse Proxy

Understand how proxies and reverse proxies manage client and server traffic in distributed system design to improve security, caching, and scalability.

CDN Usage vs Direct Server Serving

Learn when to use a Content Delivery Network vs direct server hosting based on traffic scale, geographic distribution, and caching efficiency.

Load Balancer vs. API Gateway

Understand differences between Load Balancer and API Gateway in scalable architectures—traffic distribution, request routing, API management, and availability.

API Gateway vs Direct Service Exposure

Explore API Gateway vs Direct Service Exposure in distributed systems—compare centralized routing and security with direct access and reduced latency.

Token Bucket vs Leaky Bucket

Learn how Token Bucket and Leaky Bucket algorithms manage network traffic shaping, rate limiting, and handling of bursty data.

Stateful vs Stateless Architecture

Explore the architecture of stateful vs stateless systems, comparing session handling, scalability, and design trade-offs for APIs and web services.

Serverless Architecture vs Traditional Server-based

Learn serverless system design benefits like dynamic scaling and reduced ops versus traditional server hosting with full control and overhead.

REST vs RPC

Learn the architectural differences between REST and RPC, including stateless resource handling vs. procedure calls, flexibility, scalability, and performance trade-offs.

Synchronous vs Asynchronous Communication

New

Push vs Pull Architecture

New

Polling vs. Long-Polling vs. WebSockets vs. Webhooks

Compare real-time delivery strategies; Polling, Long-Polling, WebSockets, and Webhooks, for scalable, event-driven system communication.

Batch Processing vs Stream Processing

Compare batch vs stream processing in system design; complexity, resource efficiency, continuous vs scheduled data flow, and real-time responsiveness.

SQL vs. NoSQL

Compare SQL vs NoSQL databases based on schema structure, scalability, ACID compliance, flexibility, and best use cases in system design.

Normalization vs Denormalization

New

ACID vs BASE Properties in Databases

Understand key differences between ACID and BASE database models, balancing consistency, availability, scalability, and fault tolerance in distributed systems.

Strong vs Eventual Consistency

Explore consistency models in distributed systems, comparing strong and eventual consistency in terms of latency, availability, accuracy, and scalability trade-offs.

Primary-Replica vs Peer-to-Peer Replication

Understand Primary-Replica vs Peer-to-Peer replication models, including data flow, consistency, scalability, fault tolerance, and use cases.

Read Heavy vs Write Heavy System

Explore how system design varies for read-heavy and write-heavy workloads with techniques like batching, replication, and data partitioning.

Server-Side Caching vs Client-Side Caching

Understand server-side vs client-side caching, how they differ in location, control, performance impact, and best use across web apps.

Cache-Aside vs Read-Through, Write-Through vs Write-Back

Explore cache read and write strategies for improving read performance, data consistency, and integrity in scalable systems.

Quiz

System Design Basics

Get familiar with core system design concepts, key architectural components, and building blocks of scalable, distributed software systems.

Key Characteristics of Distributed Systems

Explore key characteristics of distributed systems, including scalability, reliability, availability, efficiency, fault tolerance, and manageability.

Load Balancing

Learn how load balancing improves scalability and availability by distributing traffic using smart algorithms, health checks, and redundancy techniques.

Load Balancing Algorithms

Proxies

Learn how forward and reverse proxies improve security, caching, and traffic control by mediating communication between clients and servers.

Caching

Learn caching strategies to improve system performance, including cache types, eviction policies, read/write methods, and cache invalidation techniques.

SQL vs. NoSQL

Compare relational and non-relational databases to understand schema flexibility, scalability, ACID compliance, and ideal use cases for each.

Indexes

Understand how database indexes optimize query performance, enable efficient lookups, and impact write operations in large-scale systems.

Data Partitioning

Learn data partitioning techniques, horizontal, vertical, hybrid, and partitioning criteria to scale databases, improve performance, and balance workloads.

Consistent Hashing

Learn the architecture of scalable systems using consistent hashing for efficient data partitioning, replication, and dynamic node management.

Redundancy and Replication

Learn how redundancy and replication improve system reliability and availability through failover strategies and synchronous, asynchronous, and semi-synchronous replication.

CAP Theorem

Understand why distributed systems must trade off between consistency, availability, and partition tolerance, only two of the three can be guaranteed at any time.

PACELC Theorem

Learn how PACELC extends CAP by showing that even without partitions, distributed systems must balance latency and consistency in replicated environments.

Quorum

Design highly available distributed systems using quorum-based consistency models to coordinate read/write operations across replicated nodes.

Leader and Follower

Understand the architecture of leader-based replication in distributed systems for consistent writes, fault tolerance, and coordinated data synchronization.

Heartbeat

Learn how distributed systems use heartbeat signals to detect server failures and maintain reliable request routing and availability.

Checksum

Explore how distributed systems ensure data integrity by using checksums to detect and prevent data corruption during transmission.

Bloom Filters

Explore space-efficient system design using Bloom filters for fast, probabilistic membership checks with minimal memory and no false negatives.

Long-Polling vs WebSockets vs Server-Sent Events

Understand the system design of real-time communication protocols for scalable push-based updates between client and server.

Quiz

Grokking the System Design Interview, Volume II
The advanced successor to the world's best-selling System Design course, designed to help experienced engineers master complex distributed systems and secure L5/L6 roles.
• 22 Chapters • 227 Lessons
Hide Contents

Step 1: System Definition

Define the YouTube likes counter: what the system has to do, which reactions it tracks, and the scope that the rest of the design works within.

Step 2: Requirements

Set the functional and non-functional requirements for a likes counter, and see which of them will shape the design that follows the most.

Step 3: Capacity Estimation

Estimate the traffic and storage for a likes counter, and find the numbers that decide the design before any component has been chosen.

Step 4: API Design

Design the API for a likes counter: the endpoints clients call, what each one takes and returns, and why the shape of it matters.

Step 5: High-Level Design

Walk the high-level design of a likes counter, the parts it is built from, and how the write path and the read path move through them.

Step 6: Database Schema

Design the schema for a likes counter, with one row per user reaction and a separate totals table, and see what that costs each read and write.

Step 7: Detailed Component Design

Compare synchronous counting, asynchronous counting with Kafka, and a hybrid of the two, and see which approach this design picks and why.

Step 8: Toggles and Idempotency

Understand why a like is a state change and not an increment, how the read-then-write race appears, and how an idempotency key closes it.

Step 9: Scalability and Performance

Scale a likes counter: shard the two stores, handle the hot key in the cache, serve 250,000 reads per second, and limit vote manipulation.

Step 10: Failure Modes and Operations

Walk the five real failures of a likes counter, from a lagging consumer to a lost region, what the design does about each, and what to watch.

Quiz

Test your understanding of the likes counter design: requirements and estimation, the counting approaches, idempotency, sharding, and failures.

Step 1: System Definition

Define the notification service: the kinds of message it sends, the channels it sends them over, and the scope the rest of the design sits within.

Step 2: Requirements

Set the functional and non-functional requirements for a notification service, including channels, user preferences, and delivery guarantees.

Step 3: Capacity Estimation

Estimate the daily notification volume and the fan-out of a single publish, and find the numbers the rest of the design has to carry.

Step 4: API Design

Design the API for a notification service, including the endpoint that accepts work and answers before anything has actually been delivered.

Step 5: High-Level Design

Walk the high-level design of a notification service, and see why creating a notification is kept separate from delivering it.

Step 6: Data Storage and Schema

Design storage for a notification service, splitting the small slow-changing records in SQL from the huge notification history in NoSQL.

Step 7: Detailed Component Design

Go inside the scheduler, the queue, and the workers of a notification service, plus retries, rate limits, templates, and security.

Step 8: Scalability and Performance

Scale a notification service to 150 million notifications a day, and handle the fan-out event where one publish turns into very many.

Step 9: Failure Modes and Operations

Walk the failures of a notification service: a throttling provider, a backed-up queue, a crashed worker, an unreachable recipient, and what to watch.

Quiz

Test your understanding of the notification service design: channels and preferences, queues and workers, fan-out, retries, and failure modes.

Step 1: System Definition

Define the email system: sending, receiving, storing, threading, and searching mail, and the scope that the rest of the design works within.

Step 2: Requirements

Set the functional and non-functional requirements for an email system, from delivery and search to durability, availability, and privacy.

Step 3: Capacity Estimation

Estimate the mail volume, the stored data, and the query load an email system must carry, and find the numbers that shape the design.

Step 4: RESTful APIs

Design the REST APIs of an email system, for sending mail, fetching an inbox, reading one message, and searching a whole mailbox.

Step 5: High-Level Design

Walk the high-level design of an email system, follow the data flow of one message, and weigh the trade-offs that this design makes.

Step 6: Database Design

Design the storage model behind an email system, and see what each choice costs when a user opens an inbox or searches a mailbox.

Step 7: Detailed Component Design

Design the caching layer, conversation threading, security and privacy measures, and the indexing strategies that make search fast.

Step 8: Scalability and Performance

Scale an email system, covering how storage and search spread across machines and which parts reach their limit first under load.

Step 9: Reliability and Availability

Make an email system reliable: what must never be lost, how replication and failover work, and what users see while a part is down.

Step 10: Evolution and Future Optimizations

See how an email system evolves after launch, which extensions fit it naturally, and where later optimization work pays off the most.

Quiz

Test your understanding of the email design: the storage model, conversation threading, search indexes, caching, reliability, and scaling.

Introduction: System Design Patterns

Meet the twenty building blocks collected in this chapter, and learn to recognize each pattern the moment a design calls for it.

1. Bloom Filters

Understand how a Bloom filter answers set membership in very little memory, so a system can skip the files that cannot hold a record.

2. Consistent Hashing

Understand how consistent hashing keeps data movement small when a machine joins or leaves, and how virtual nodes even out the load.

3. Quorum

Understand how a quorum sets how many machines must agree before an operation counts as done, so two clients cannot read two answers.

4. Leader and Follower

Understand how this pattern names one server to resolve conflicting writes, and how its followers replicate the data from it.

5. Write-ahead Log

Understand how a write-ahead log records an intended change before making it, so a machine can tell what it was doing after a crash.

6. Segmented Log

Understand how splitting a growing log into smaller equal-sized parts keeps writes fast and makes the cleanup of old data simple.

7. High-Water Mark

Understand how the high-water mark marks the last safely replicated log entry, so followers never serve a write that could still be lost.

8. Lease

Understand how a lease works as a lock that expires on its own, so a resource is never blocked forever by a holder that never returns.

9. Heartbeat

Understand how a heartbeat is a small, regular signal that tells a distributed system which of its servers are still up and working.

10. Gossip Protocol

Understand how gossip spreads cluster state by having each node share with one random peer, so state reaches everyone without direct checks.

11. Phi Accrual Failure Detection

Understand how phi accrual failure detection replaces an up-or-down verdict with a suspicion level that rises as evidence of failure builds.

12. Split Brain

Understand how a leader-based system can end up with two active leaders, and how it decides which one is real and ignores the other.

13. Fencing

Understand how fencing stops a failed leader that is still running from touching cluster resources once a new leader has been elected.

14. Checksum

Understand how a checksum lets a client detect data corrupted by a bad disk, a network fault, or a bug, instead of accepting it silently.

15. Vector Clocks

Understand how vector clocks tell which replica produced which version of an object, and which of those versions truly conflict.

16. CAP Theorem

Understand which promise a distributed system has to break during a network partition, and when the CAP theorem forces that choice.

17. PACELC Theorem

Understand how PACELC extends CAP by also covering the normal case, when nothing has failed and latency becomes the real trade-off.

18. Hinted Handoff

Understand how hinted handoff keeps writes succeeding while one replica is offline, and how that replica is caught up afterwards.

19. Read Repair

Understand how read repair fixes a stale replica at the moment someone reads it, instead of waiting for a separate repair process.

20. Merkle Trees

Understand how a Merkle tree finds exactly where two large replicas differ, without moving most of the data between them over the network.

Quiz

Test your understanding of the twenty patterns, from Bloom filters and consistent hashing to quorums, leases, fencing, and Merkle trees.

Dynamo: Introduction

Understand what Dynamo is, the design goals behind it, the use cases it was built for, and the simple key-value APIs it exposes.

High-Level Architecture

Walk Dynamo's architecture: data distribution, replication and consistency, temporary failures, node communication, and high availability.

Data Partitioning

Understand how Dynamo distributes data with consistent hashing, and how virtual nodes spread the load and simplify adding a machine.

Replication

Understand optimistic replication in Dynamo, the preference list, the sloppy quorum that absorbs temporary failures, and hinted handoff.

Vector Clocks and Conflicting Data

Understand clock skew, how vector clocks track versions in Dynamo, and how CRDTs and last-write-wins settle conflicting data.

The Life of Dynamo’s put() & get() Operations

Follow a put and a get through Dynamo: choosing a coordinator node, the consistency protocol, and the state machine that handles a request.

Anti-entropy Through Merkle Trees

Understand how Dynamo uses Merkle trees to find differences between replicas cheaply, and the merits and demerits of that approach.

Gossip Protocol

Understand how Dynamo nodes learn about one another through the gossip protocol, and how seed nodes handle external discovery.

Dynamo Characteristics and Criticism

Understand what each Dynamo node is responsible for, the system's characteristics, the criticism of it, and the datastores built on it.

Summary: Dynamo

Review Dynamo in one place: the design decisions behind it, the system design patterns it uses, and where to read further about it.

Quiz: Dynamo

Test your understanding of Dynamo: consistent hashing, sloppy quorums, hinted handoff, vector clocks, Merkle trees, and gossip.

Rapid-Fire Interview Questions: Dynamo

Work through rapid-fire questions on Dynamo, to check that every part of its design is recallable under the pressure of an interview.

Cassandra: Introduction

Understand what Cassandra is, the background it came from, and the kinds of workload that suit a wide-column distributed database.

High-level Architecture

Walk Cassandra's architecture: its common terms, data partitioning, partition and clustering keys, the partitioner, and the coordinator.

Replication

Understand Cassandra's replication factor and its replication strategies, from simple replication to network topology awareness.

Cassandra Consistency Levels

Understand Cassandra's write and read consistency levels, where hinted handoff fits in, and what the snitch is there to do for reads.

Gossiper

Understand how Cassandra uses the gossip protocol to share cluster state, and how it decides that one of its nodes has failed.

Anatomy of Cassandra's Write Operation

Follow a Cassandra write through the commit log, the memtable, and the SSTable, and see why that path stays so fast under load.

Anatomy of Cassandra's Read Operation

Follow a Cassandra read through caches, the memtable, and SSTables, using Bloom filters, the index summary, and the key cache.

Compaction

Understand how compaction merges Cassandra's SSTables, the compaction strategies available, and why sequential writes matter here.

Tombstones

Understand what a tombstone is in Cassandra, why a delete is written rather than removed, and the problems tombstones go on to cause.

Summary: Cassandra

Review Cassandra in one place: its characteristics, the system design patterns it uses, and where to read further about its design.

Quiz: Cassandra

Test your understanding of Cassandra: partition and clustering keys, consistency levels, the write and read paths, and compaction.

Rapid-Fire Interview Questions: Cassandra

Work through rapid-fire questions on Cassandra, to check that every part of its design is recallable under interview pressure now.

Messaging Systems: Introduction

Understand what a messaging system is, and how the queue model differs from the publish-subscribe model that Kafka is built on.

Kafka: Introduction

Understand what Kafka is, the background it came from, and the use cases that suit a distributed, durable, replayable commit log.

High-level Architecture

Walk Kafka's architecture and its common terms: brokers, records, topics, producers, consumers, the cluster, and cluster coordination.

Kafka: Deep Dive

Understand Kafka's topic partitions, the leader and follower roles, in-sync replicas, and the high-water mark that bounds safe reads.

Consumer Groups

Understand what a Kafka consumer group is, and how the partitions of a topic are distributed between the consumers inside one group.

Kafka Workflow

Follow the Kafka workflow twice, once as plain publish-subscribe messaging and once through a consumer group that shares the partitions.

Cluster Coordination: KRaft and ZooKeeper

Understand what Kafka's coordination layer does, how KRaft handles it, what it improved on ZooKeeper, and how a client finds a leader.

Controller Broker

Understand what the Kafka controller broker does, how split brain can appear, and how a generation clock settles which one is current.

Kafka Delivery Semantics

Understand Kafka's delivery semantics on both sides, for producers writing records and for consumers committing their offsets.

Kafka Characteristics

Understand how Kafka stores messages on disk, how long it retains records, how client quotas work, and where its performance comes from.

Summary: Kafka

Review Kafka in one place, with the patterns it is built from: the high-water mark, leader and follower, split brain, and the segmented log.

Quiz: Kafka

Test your understanding of Kafka: partitions and replicas, the high-water mark, consumer groups, coordination, and delivery semantics.

Rapid-Fire Interview Questions: Kafka

Work through rapid-fire questions on Kafka, to check that every part of its design is recallable under the pressure of an interview.

Chubby: Introduction

Understand what Chubby is and what it is used for, from leader election and naming to small-object storage and distributed locking.

High-level Architecture

Walk Chubby's architecture: the Chubby cell and its servers, the client library, and the general, file, locking, and sequencer APIs.

Design Rationale

Understand why Chubby is a service with coarse-grained advisory locks and a file-like interface, and where it sits on the CAP trade-off.

How Chubby Works

Follow service and client initialization in Chubby, then work through a leader election example with the pseudocode behind it.

File, Directories, and Handles

Understand Chubby's file and directory nodes, the metadata each one carries, and the handles through which clients read and change them.

Locks, Sequencers, and Lock-delays

Understand Chubby's locks, how a sequencer proves a lock is still held, and how a lock-delay protects a resource after a client fails.

Sessions and Events

Understand the Chubby session and its protocol, what KeepAlive does, how sessions are optimized, and what happens during a failover.

Master Election and Chubby Events

Understand how a newly elected Chubby master initializes itself, and the events Chubby sends to its clients when things change.

Caching

Understand how the Chubby client cache keeps reads cheap, and how the master invalidates that cache so clients never read stale data.

Database

Understand how Chubby keeps its own database safe, through regular backups and through mirroring to other cells for wider availability.

Scaling Chubby

Understand how Chubby scales to many clients, through proxies and partitioning, and what its designers learned from doing so.

Summary: Chubby

Review Chubby in one place: the design decisions behind it, the system design patterns it uses, and where to read further about it.

Quiz: Chubby

Test your understanding of Chubby: cells and servers, advisory locks and sequencers, sessions and KeepAlive, caching, and scaling.

Rapid-Fire Interview Questions: Chubby

Work through rapid-fire questions on Chubby, to check that every part of its design is recallable under the pressure of an interview.

Hadoop Distributed File System: Introduction

Understand what HDFS is, the background it came from, and the APIs it offers for storing very large files across many machines.

High-level Architecture

Walk the HDFS architecture, with its NameNode and DataNodes, and compare the design against the Google File System it came from.

Deep Dive

Understand the HDFS cluster topology, rack aware replication, its synchronization semantics, and the consistency model it offers.

Anatomy of a Read Operation

Follow an HDFS read from the NameNode lookup to the DataNode transfer, and see what a short circuit read saves a local client.

Anatomy of a Write Operation

Follow an HDFS write, from the NameNode allocating each block to the pipeline of DataNodes that store it and acknowledge it in turn.

Data Integrity & Caching

Understand how HDFS protects data integrity with checksums and the block scanner, and how its caching keeps hot blocks fast to read.

Fault Tolerance

Understand how HDFS survives a DataNode failure through replication and heartbeats, and what happens when the NameNode itself fails.

HDFS High Availability (HA)

Understand the HDFS high availability design, with the quorum journal manager, ZooKeeper, and the fencing that makes failover safe.

HDFS Characteristics

Understand HDFS security and permissions, federation for scaling its namespace, erasure coding, and how it is used in practice.

Summary: HDFS

Review HDFS in one place: the design decisions behind it, the system design patterns it uses, and where to read further about it.

Quiz: HDFS

Test your understanding of HDFS: the NameNode and DataNodes, rack aware replication, the read and write paths, and high availability.

Rapid-Fire Interview Questions: HDFS

Work through rapid-fire questions on HDFS, to check that every part of its design is recallable under the pressure of an interview.

Google File System: Introduction

Understand what the Google File System is, the background it came from, the workloads it was built for, and the APIs it exposes.

High-level Architecture

Walk the GFS architecture and its parts: chunks and chunk handles, the cluster, its chunkservers, the master, and the client.

Single Master and Large Chunk Size

Understand why GFS uses a single master and a very large chunk size, and how lazy space allocation keeps that choice affordable.

Metadata

Understand how the GFS master keeps metadata in memory, how it learns chunk locations, and how the operation log and checkpoints protect it.

Master Operations

Understand the GFS master's work: namespace locking, replica placement, re-replication, rebalancing, and stale replica detection.

Anatomy of a Read Operation

Follow a GFS read, from the client asking the master where a chunk lives to reading the data straight from a nearby chunkserver.

Anatomy of a Write Operation

Follow a GFS write, and understand how a chunk lease lets one replica order the writes that every other replica then applies.

Anatomy of an Append Operation

Follow a GFS record append, and see why appending, not overwriting, is the operation this whole file system was optimized for.

GFS Consistency Model and Snapshotting

Understand what the GFS consistency model actually promises after a write or an append, and how snapshotting is done cheaply.

Fault Tolerance, High Availability, and Data Integrity

Understand how GFS tolerates failures, how chunk replication keeps it available, and how checksums protect the integrity of the data.

Garbage Collection

Understand how GFS reclaims space through lazy deletion, and weigh the advantages of that approach against its disadvantages.

Criticism on GFS

Understand the problems that come with a single GFS master and with its very large chunk size, and what they cost in practice.

Summary: GFS

Review the Google File System in one place: its design, the system design patterns it uses, and where to read further about it.

Quiz: GFS

Test your understanding of GFS: chunks and the single master, leases and writes, record appends, the consistency model, and deletion.

Rapid-Fire Interview Questions: GFS

Work through rapid-fire questions on GFS, to check that every part of its design is recallable under the pressure of an interview.

BigTable: Introduction

Understand what BigTable is, the background it came from, and the kinds of workload that suit a wide-column storage system at scale.

BigTable Data Model

Understand the BigTable data model: rows and their keys, column families, the columns inside them, and the timestamps on each cell.

System APIs

Understand the BigTable APIs, both the metadata operations that manage tables and families and the data operations that read and write.

Partitioning and High-level Architecture

Understand how BigTable splits a table into tablets, and walk the high-level architecture that stores and serves those tablets.

SSTable

Understand how BigTable stores its tablets in GFS as SSTables, and keep the difference between a table, a tablet, and an SSTable clear.

GFS and Chubby

Understand what BigTable depends on the Google File System for, and what it depends on Chubby for, and why it needs both of them.

Bigtable Components

Understand the two kinds of server in BigTable: the master that assigns and monitors work, and the tablet servers that do it.

Working with Tablets

Understand how BigTable locates and assigns tablets, how it monitors its tablet servers, and how it balances load between them.

The Life of BigTable's Read & Write Operations

Follow a write and then a read through BigTable, and see which parts of its storage each one has to touch along the way, and why.

Fault Tolerance and Compaction

Understand how BigTable tolerates the failure of a tablet server or its master, what it inherits from GFS and Chubby, and how it compacts.

BigTable Refinements

Understand the refinements that make BigTable fast: locality groups, compression, caching, Bloom filters, and a unified commit log.

BigTable Characteristics

Understand BigTable's performance, how it compares with Dynamo, and which of the later datastores were built on its principles.

Summary: BigTable

Review BigTable in one place: the design decisions behind it, how its parts fit together, and where to read further about it.

Quiz: BigTable

Test your understanding of BigTable: the data model, tablets and SSTables, its use of GFS and Chubby, the read and write paths, and compaction.

Rapid-Fire Interview Questions: BigTable

Work through rapid-fire questions on BigTable, to check that every part of its design is recallable under the pressure of an interview.
Grokking Microservices Design Patterns
Master microservices design patterns for designing scalable, resilient, and more manageable systems.
• 19 Chapters • 158 Lessons
Hide Contents

What is Service Discovery Pattern?

Understand why service discovery matters in a system where instances come and go, and exactly which problem the pattern solves.

The Problem: Service Coordination in Distributed Systems

Understand how services coordinate in a distributed system, and why hard-coded addresses stop working once instances move around.

Service Discovery Pattern: A Solution

Understand how service discovery solves that problem, so a caller can find a healthy instance without knowing its address first.

The Architecture of the Service Discovery Pattern

Understand the service discovery architecture, the role of the service registry, and how client-side and server-side discovery differ.

The Inner Workings of the Service Discovery Pattern

Understand self-registration against third-party registration, and the role health checks play in keeping a registry honest.

Service Discovery Pattern: An Example

Work through an example: the registry's three jobs, heartbeats and the time to live, and choosing between healthy instances.

Performance Implications and Special Considerations

Understand the latency a registry adds, how it scales, its fault tolerance, and the load balancing and failover strategies around it.

System Design Examples

See service discovery in use in microservice and cloud systems, through an e-commerce example and a streaming platform example.

Security Considerations

Understand the security side of service discovery, and what a registry must protect as services register and look each other up.

Flashcards Review

Review service discovery with flashcards on the registry, client-side and server-side discovery, registration, and health checks.

Chapter Assessment

Test your understanding of service discovery: the registry, client-side and server-side discovery, registration, and health checks.

Introduction

Understand the challenge of cascading failures, and why isolating parts of a system stops one failure from taking the rest down.

The Problem: Failure Propagation in Distributed Systems

Understand how failure propagates through a distributed system when every request shares the same single pool of resources.

The Bulkhead Pattern: A Solution

Understand how the bulkhead pattern isolates failures, and where its name comes from in the sealed compartments of a ship.

The Architecture

Understand the building blocks of the bulkhead pattern: isolating components, allocating resources, and handling the interactions.

The Inner Workings

Understand isolation and resource allocation in practice, failure detection and recovery, and what bulkheads do not solve for you.

Bulkhead Pattern: An Example

Work through a bulkhead example: the resource being divided, the two arrangements compared, and both halves of the trade involved.

Performance Implications and Special Considerations

Understand what bulkheads buy in useful work and predictable capacity, what they cost in response time, and how to size them.

System Design Examples

See bulkheads in use across e-commerce, online gaming, financial systems, and platforms serving many customers at once.

Conclusion

Review the value of the bulkhead pattern in a distributed system, and when the isolation it brings is worth what it costs you.

Flashcards Review

Review the bulkhead pattern with flashcards on isolation, resource pools, failure propagation, and sizing each compartment.

Chapter Assessment

Test your understanding of the bulkhead pattern: isolation, resource allocation, failure propagation, and sizing compartments.

Introduction to the Service Mesh

Understand what the service mesh pattern says, why it matters once every service repeats the same network logic, and what follows.

The Problem: Network Logic in Every Service

Understand why the same network code ends up inside every service, what goes wrong because of it, and why a library is not enough.

The Service Mesh: A Solution

Understand how moving network logic into a proxy meets the requirement, what the application is left doing, and what remains unsolved.

The Architecture of a Service Mesh

Understand the data plane and the control plane, mutual TLS between services, shifting traffic without a deploy, and what a mesh sees.

Service Mesh: An Example

Work through a mesh example: a retry and timeout rule, shifting ten percent of traffic, and the path one request actually takes.

Performance Implications and Special Considerations

Understand the two extra hops a mesh adds to every call, the resource cost per pod, the control plane dependency, and debugging.

Use Cases and System Design Examples

See when a service mesh pays for itself, when it is simply too much machinery, and the system designs where it does belong.

Conclusion

Review what a service mesh gives you, what it asks in return, and where it sits among the other patterns in this course.

Flashcards Review

Review the service mesh with flashcards on the data and control planes, sidecar proxies, mutual TLS, and shifting traffic safely.

Chapter Assessment

Test your understanding of the service mesh: the data and control planes, proxies, mutual TLS, traffic shifting, and its costs.

Introduction to Database per Service

Understand what the database per service pattern says, why it matters for the independence of a service, and what this chapter covers.

The Problem: One Shared Database

Understand the costs of one shared database: schema coupling, performance interference, a single failure domain, and coordination.

Database per Service: A Solution

Understand the rule behind database per service, what changes immediately once you follow it, and what you give up in exchange.

The Architecture of Database per Service

Understand the three levels of isolation, polyglot persistence, and how to handle the shared reference data every service wants.

Database per Service: An Example

Work through an example: the join that has to go, API composition in code, both costs counted, and where it stops being small.

Performance Implications and Special Considerations

Understand that queries now cross the network, that data gets duplicated, that there are more databases to run, and how to limit it.

Use Cases and System Design Examples

See when the database per service pattern fits, when it does not, and the system designs where each of those answers applies.

Conclusion

Review what database per service gives you, what it asks in return, and which patterns are worth reading next alongside it.

Flashcards Review

Review database per service with flashcards on schema coupling, the isolation levels, polyglot persistence, and API composition.

Chapter Assessment

Test your understanding of database per service: schema coupling, isolation, polyglot persistence, and composing data across services.

Introduction to Saga Pattern

Understand why a transaction is hard to run across services, the problem that creates, and how the saga pattern answers it.

The Problem: Traditional Transaction Models

Understand the traditional transaction models, where they break down across services, and why distributed work needs another way.

The Saga Pattern: A Solution

Understand what a saga is, how the pattern works, and the difference between the choreography and orchestration styles of running one.

The Architecture of the Saga Pattern

Understand the architecture of a saga: local transactions, choreography and orchestration, eventual consistency, and compensations.

The Inner Workings of the Saga Pattern

Understand how a saga undoes work in reverse order, what the saga log is for, and what to do when a compensation is not enough.

Saga Pattern: An Example

Work through a saga example: three rules the code shows, why compensations cannot give up, and what a saga does not give you.

Performance Implications

Understand the complexity and the extra latency a saga brings, and the consistency, idempotency, and ordering it demands of you.

System Design Examples

See sagas in use across e-commerce and travel booking, with worked system design examples including an online food delivery service.

Conclusion

Review the saga pattern and the architecture under it, how the theory turns into practice, real applications, and what to read next.

Flashcards Review

Review the saga pattern with flashcards on local transactions, compensations, the saga log, choreography, and orchestration.

Chapter Assessment

Test your understanding of the saga pattern: local transactions, compensations, the saga log, choreography, and orchestration.

Introduction to the Transactional Outbox Pattern

Understand what the transactional outbox pattern says, why it matters whenever a service writes data and publishes an event, and more.

The Problem: Dual Writes

Understand what a dual write is, the two orders in which it can fail, why the obvious fixes do not work, and what a real fix must do.

The Transactional Outbox: A Solution

Understand how one transaction plus a relay replaces two writes, why that meets the requirement, and the at-least-once price you pay.

The Architecture of the Outbox Pattern

Understand the outbox table and its two relay styles, a polling publisher and transaction log tailing, and how to choose between them.

Transactional Outbox: An Example

Work through an outbox example: the write path, the relay, an idempotent consumer, and the trace of one order through all of them.

Performance Implications and Special Considerations

Understand the publish delay, the write amplification, the growth of the outbox table, and duplicates and ordering under heavy load.

Use Cases and System Design Examples

See when the transactional outbox fits, when it is more machinery than you need, and the system designs where it earns its place.

Conclusion

Review what the transactional outbox gives you, what it asks in return, and which patterns are worth reading next alongside it.

Flashcards Review

Review the transactional outbox with flashcards on dual writes, the outbox table, relay styles, and idempotent consumers.

Chapter Assessment

Test your understanding of the transactional outbox: dual writes, the outbox table, the relay styles, and idempotent consumers.

Introduction

Understand how architecture patterns led here, and what the event-driven architecture pattern is in its own terms before the detail.

The Problem: Managing Complex Interactions in Distributed Systems

Understand why complex interactions break simple designs, the call for asynchronous messaging, and the data consistency this raises.

Event-Driven Architecture: A Promising Solution

Understand the benefits of event-driven architecture, and the components that an event-driven system is actually assembled from.

The Architecture of the Event-Driven Architecture Pattern

Understand the architecture of an event-driven system: its components, how they are structured, and how the whole thing operates.

The Inner Workings of the Event-Driven Architecture Pattern

Understand event generation and propagation, routing through event channels, event processing and state change, and real-time use.

Event-Driven Architecture Pattern: An Example

Work through an example: what changes between the two versions, the failure worth watching, and why ordering is the hard part.

Performance Implications and Special Considerations

Understand the scalability, latency, error handling and durability, complexity, and schema compatibility that events bring with them.

Use Cases and System Design Examples

See event-driven designs in real-time analytics, IoT, e-commerce, and microservices, with a ride-sharing example and when to avoid it.

Conclusion

Review the event-driven architecture pattern: what it gives you, what it asks in return, and where it belongs among the others.

Flashcards Review

Review event-driven architecture with flashcards on events and channels, producers and consumers, ordering, and schema changes.

Chapter Assessment

Test your understanding of event-driven architecture: events and channels, producers and consumers, ordering, and schema changes.

Introduction

Understand what CQRS is and why it is used in microservices, before going into how commands and queries are actually separated.

The Problem: Traditional CRUD Operations

Understand the limitations of traditional CRUD operations, and the problems of scale and performance that push teams towards CQRS.

CQRS Pattern: A Solution

Understand how CQRS answers those limits by splitting the write side of a system from the read side, and what that split buys you.

The Architecture of the CQRS Pattern

Understand the CQRS architecture: separate command and query models, separate read and write databases, and the role of events.

The Inner Workings of the CQRS Pattern

Understand the path of a command through validation, handling, and events, the path of a query, and how the two sides are synchronized.

CQRS Pattern: An Example

Work through a CQRS example: the command model, the query model, and the infrastructure that keeps the two of them in step.

Issues, Special Considerations, and Performance Implications

Understand the complexity of CQRS, how to manage data consistency, its performance implications, and how to handle transactions.

System Design Examples

See CQRS in high-performance applications, complex business logic, and collaborative domains, with event-driven design examples.

Flashcards Review

Review CQRS with flashcards on command and query models, separate read and write stores, synchronization, and eventual consistency.

Chapter Assessment

Test your understanding of CQRS: the command and query models, separate read and write stores, synchronization, and consistency.

Introduction to Event Sourcing

Understand what event sourcing says, why storing what happened matters more than storing the result, and what this chapter covers.

The Problem: Storing Only the Current State

Understand how an update destroys information, the questions you can no longer answer, and the limits of the usual workarounds.

Event Sourcing: A Solution

Understand how appending instead of updating lets a replay rebuild state, and why each event is recorded as a business fact.

The Architecture of Event Sourcing

Understand the event store, concurrency control, snapshots, projections and read models, and how to evolve an event schema safely.

Event Sourcing: An Example

Work through an example: the events, the aggregate, command handling and replay, and why the store has no balance column at all.

Performance Implications and Special Considerations

Understand the cost of a replay, the growth of storage, eventually consistent reads, the difficulty of deleting, and the team cost.

Use Cases and System Design Examples

See when event sourcing fits and when it does not, with worked examples of a payments ledger and a shopping cart and order system.

Conclusion

Review what event sourcing gives you, what it asks in return, and which patterns are worth reading next alongside it.

Flashcards Review

Review event sourcing with flashcards on the event store, replay, snapshots, projections, and the evolution of event schemas.

Chapter Assessment

Test your understanding of event sourcing: the event store, replay and snapshots, projections, and evolving an event schema.

Introduction

Understand what counts as configuration in a service, and why the traditional approach of shipping it with the code breaks down.

The Problem: Configuration Management in a Microservices Architecture

Understand the cost of hardcoded settings across many services: coupled deployments, and values that cannot change while running.

The Solution: Configuration Externalization Pattern

Understand what the configuration externalization pattern says, how a service uses it, and how values change without a deployment.

How Configuration Externalization Works

Understand the two parts of the pattern, the configuration server, changing a value without a restart, and security across them.

Configuration Externalization: A Code Example

Work through a code example with Spring Cloud Config: the server and its store, the client, refreshing values, and encrypting one.

Considerations and Implications

Understand data security, the configuration server as a single point of failure, rollbacks, and validating a value before it applies.

Use Cases and Real-world Examples

See configuration externalization in use across e-commerce, financial services, food, a startup, and a telecommunications company.

Conclusion

Review what the pattern gives you, what it costs, where it fits among the other patterns, and what is worth reading next.

Flashcards Review

Review configuration externalization with flashcards on the configuration server, refreshing values, secrets, and rollbacks.

Chapter Assessment

Test your understanding of configuration externalization: the configuration server, refreshing values, secrets, and rollbacks.
Grokking Design Patterns for Engineers and Managers
Unlock the power of design patterns: Elevate your coding skills with timeless solutions for top-notch software design.
• 4 Chapters • 31 Lessons
Hide Contents

Introduction

Understand what behavioral patterns are for, and meet the types of behavioral pattern before studying each one of them in detail.

Chain of Responsibility Pattern

Understand the chain of responsibility pattern, its structure, the bug it invites, and why the order of handlers is part of the design.

Command Pattern

Understand the structure and implementation of the command pattern, and why an undo has to restore state rather than recompute it.

Iterator Pattern

Understand the iterator pattern, its structure and implementation, hiding the shape but not the cost, and three ways iterators break.

Mediator Pattern

Understand the structure and implementation of the mediator pattern, how it differs from observer, and the god object it can become.

Memento Pattern

Understand the memento pattern, its structure and implementation, how it differs from command undo, and the bug that ruins a snapshot.

Observer Pattern

Understand the structure and implementation of the observer pattern, how it differs from mediator, and four ways observers go wrong.

State Pattern

Understand the structure and implementation of the state pattern, how it differs from strategy, and when a state machine outgrows it.

Strategy Pattern

Understand the structure and implementation of the strategy pattern, why state and bridge share its diagram, and where it goes wrong.

Template Method Pattern

Understand the structure and implementation of the template method pattern, how it differs from strategy, and where it goes wrong.

Visitor Pattern

Understand the structure and implementation of the visitor pattern, the one question that decides it, and how it pairs with composite.

Summary

Review the behavioral patterns in one place: how each distributes work, which of them look alike, and when each is the right choice.

What people say about our courses

Image
Annual Subscription
Get instant access to all current and upcoming courses for one year.
OR
Lifetime Access - This Bundle
Get lifetime access to this bundle only.
Discounted Prices for Your Region
Certification on completing the course.
Design Gurus logo
One-Stop Portal For Tech Interviews.
About Us
Our Team
Careers
Partners
Contact Us
Become Affiliate
Copyright © 2026 Design Gurus, LLC. All rights reserved.