Skip to main content

The complete knowledge map

Every concept, component, pattern, system, case study, and company track taught on SystemExpert — indexed on one page. Use this as your hub or your syllabus.

50 Concepts
19 Components
26 Patterns
43 Systems
5 Case studies
8 Company tracks
4 Level tracks

Foundations concepts

Core distributed-systems concepts every candidate needs. Start here.

Requirements → Scale → Bottleneck → Solution

foundations

The four-step loop that lets you reason about any system at any scale. This is the platform's thesis.

Open

CAP and PACELC — the trade-off you can't avoid

foundations

You cannot have consistency, availability, and partition-tolerance all at once. PACELC extends the picture with a latency vs. consistency trade-off when there's no partition.

Open

Back-of-the-envelope: from DAU to peak RPS

foundations

Numbers before diagrams. How to derive traffic, storage, bandwidth, and cache from a headline DAU number in under 3 minutes.

Open

Scalability — horizontal vs vertical

foundations

Two ways to add capacity, and why one usually wins at scale.

Open

Availability — the nines and their cost

foundations

What 99.9% vs 99.99% actually means, and what each nine costs.

Open

Reliability — MTBF, MTTR, and error budgets

foundations

How to talk about reliability without hand-waving.

Open

Durability — the guarantee you can't fudge

foundations

Once you say 'stored', you own it forever.

Open

Latency vs throughput

foundations

Two axes that pull in opposite directions.

Open

Consistency models

foundations

Linearizable, sequential, causal, eventual — and when each is enough.

Open

ACID and BASE

foundations

Two philosophies of correctness under contention.

Open

Stateful vs stateless

foundations

Why stateless services are cheaper to scale — and where state has to live instead.

Open

Sync vs async communication

foundations

When to make the caller wait, and when to fire-and-forget.

Open

Batch vs streaming processing

foundations

Two paradigms for computing over data, and where each wins.

Open

Push vs pull

foundations

Who initiates? The choice defines your fan-out topology.

Open

Network Layers — OSI 1-7 and TCP/IP

networking

The 7-layer model that lets you reason about any network problem. Where each protocol sits and what real systems live at each layer.

Open

HTTP / HTTPS

networking

The request-response protocol that runs the web.

Open

TCP vs UDP

networking

Reliable-ordered vs fire-and-forget — and when you want the second.

Open

DNS

networking

How a name becomes an IP — and how DNS becomes a load balancer.

Open

TLS

networking

How the connection becomes private without a shared secret upfront.

Open

WebSockets and SSE

networking

Two ways to keep the server talking to the client.

Open

HTTP/2 and HTTP/3

networking

Multiplexing and QUIC — how HTTP got faster after 20 years.

Open

CDN and Anycast

networking

Serving the same IP from many places at once.

Open

TCP internals — handshake and congestion control

networking

The 3-way handshake, sliding window, and how BBR/CUBIC decide how fast to send.

Open

HTTPS handshake (TLS 1.3 deep dive)

networking

How ClientHello + ServerHello + Finished set up a secure channel in 1 round-trip.

Open

Load balancer internals — L4 vs L7

networking

Packet routing vs HTTP-aware routing, health checks, sticky sessions.

Open

Connection pooling

networking

Why creating a TCP connection per request kills you at scale.

Open

BGP + Anycast internals

networking

How the internet's routing table serves the same IP from 300 places at once.

Open

gRPC vs REST

networking

Protobuf + HTTP/2 streaming vs JSON + HTTP/1.1 — when each wins.

Open

HTTP idempotency & retries

networking

How idempotency-keys turn unreliable networks into safe retries — Stripe, Shopify, OpenAI patterns.

Open

HTTP request lifecycle — animated end-to-end

networking

A checkout API request from browser click to backend response — DNS, TCP, TLS, LB routing, backend. HTTP vs HTTPS side-by-side.

Open

Consensus — Paxos and Raft

distributed-systems

How machines agree on one value despite failures. The algorithm underneath leader election.

Open

Consistent hashing

distributed-systems

The ring algorithm behind Cassandra, DynamoDB, Redis Cluster, and every CDN.

Open

Distributed transactions — 2PC, 3PC, Saga, TCC

distributed-systems

Four ways to make N services commit together — with the trade-offs each accepts.

Open

Vector clocks and hybrid logical clocks

distributed-systems

How Lamport clocks + HLC establish causal order without a global clock.

Open

CRDTs — conflict-free replicated data types

distributed-systems

G-Counter, LWW-Register, OR-Set — data structures that merge without conflict.

Open

Quorum reads and writes

distributed-systems

The R+W>N formula that makes eventually-consistent stores feel consistent.

Open

Gossip protocols

distributed-systems

How Cassandra and Serf propagate cluster state at O(log N) — like disease spread.

Open

Distributed locks — Redlock, ZooKeeper, Chubby

distributed-systems

The 3 industry patterns for mutual exclusion across machines.

Open

Leader election

distributed-systems

The general problem: how do N machines pick one boss, and how do they replace it when it dies?

Open

Database Types — SQL, NoSQL, NewSQL

databases

The taxonomy of database engines: relational, key-value, document, wide-column, graph, time-series, search, vector, and NewSQL — with when to pick each.

Open

Indexes — the promise and the cost

databases

Indexes turn table scans into lookups; every index taxes writes.

Open

B-trees

databases

The data structure inside most relational databases.

Open

LSM trees

databases

Write-optimized storage — how LevelDB, RocksDB, and Cassandra store data.

Open

Isolation levels

databases

Read committed, repeatable read, serializable — what each protects against.

Open

MVCC

databases

How Postgres keeps readers and writers out of each other's way.

Open

Replication — leader, multi-leader, leaderless

databases

Three topologies for the same problem: keep multiple copies in sync.

Open

Sharding strategies

databases

Range, hash, and consistent-hash — the trade-offs and hot-key traps.

Open

Write-ahead log (WAL)

databases

The append-only log that gives databases durability without slow fsyncs everywhere.

Open

Query planners and join algorithms

databases

How Postgres picks nested-loop vs hash vs merge join — and why one query is 1000x faster than another.

Open

Vector databases — HNSW, IVF, ScaNN

databases

The similarity-search index behind every RAG system in 2025.

Open

Components

The building blocks — load balancers, databases, caches, queues. Every component has a comprehensive why/how/when story.

Deep tutorial (all in one page)
Authored (19)

Load Balancer

load-balancer

Distributes incoming traffic across a pool of servers for scale and fault tolerance.

Open

API Gateway

api-gateway

Single entry point that handles auth, rate limiting, routing, and protocol translation for downstream services.

Open

CDN (Content Delivery Network)

cdn

A globally distributed cache that serves static and cacheable dynamic content close to the user.

Open

Redis

cache

An in-memory key-value store used for caching, pub/sub, rate limiting, distributed locks, and simple queues.

Open

SQL Database

sql-db

A row-oriented, ACID-compliant relational database — the default for transactional workloads.

Open

MySQL

sql-db

The world's most-deployed open-source relational database — clustered PK index, InnoDB MVCC, Vitess for sharding at billions-of-rows scale.

Open

PostgreSQL

sql-db

The extensible, standards-compliant relational database — MVCC via xmin/xmax, richest type system in SQL, extensions from PostGIS to pgvector.

Open

NoSQL Database

nosql-db

Umbrella for document, wide-column, and key-value stores optimized for horizontal scale over strict schema.

Open

Kafka

stream

A distributed, partitioned, replicated commit log for event streaming, high-throughput ingest, and decoupled services.

Open

Message Queue

queue

Async task queue that decouples producers from consumers and smooths bursts. Each message is processed exactly once (per-message ACK model).

Open

Object Storage (S3, GCS, Azure Blob)

object-storage

Durable, cheap, flat-namespace storage for blobs — images, videos, backups, logs, and any large binary object.

Open

Search Engine (Elasticsearch, OpenSearch, Meilisearch)

search

Inverted-index-based full-text and structured search — the right tool for 'find me records matching this query' when SQL LIKE isn't fast enough.

Open

Stream Processor (Flink, Kafka Streams, Spark Structured Streaming)

stream

Continuous computation over event streams — windowed aggregations, joins, ML features, and event-driven derived views.

Open

Rate Limiter

rate-limiter

Enforces per-caller (per-user, per-IP, per-tenant) request budgets to protect downstream systems from abuse and overload.

Open

Scheduler (cron, Airflow, Temporal timers)

scheduler

Runs jobs at a time or interval — the simplest form of eventual asynchronous computation.

Open

Workflow Engine (Temporal, Cadence, AWS Step Functions)

workflow

Orchestrates long-running, stateful multi-step processes — the right tool when a business flow involves many services and can span days.

Open

Distributed Lock (ZooKeeper, etcd, Redis Redlock)

coordinator

Cross-node mutual exclusion — 'only one node can do this at a time' when you can't rely on a single-node lock.

Open

Service Discovery (Consul, etcd, DNS-based)

coordinator

How services find each other in a dynamic fleet — because IPs change, nodes come and go, and hardcoding is a losing game.

Open

Distributed Database (DynamoDB, Cassandra, Spanner)

nosql-db

Horizontally-scaled database with automatic partitioning and replication — the answer when one node can't hold the data or the traffic.

Open

Patterns

Repeatable architectural solutions to recurring problems — Cache-aside, Circuit Breaker, Saga, CQRS, and more.

Authored (26)

Cache-aside (Lazy loading)

Reads dominate your workload, and every read hits a slow store (database, disk, network). Latency and load on the primary storage climb until the primary becomes the bottleneck.

Open

Read-through cache

Your application logic has to duplicate cache-management code everywhere it reads — check cache, on miss read DB, populate cache, return.

Open

Write-through cache

In cache-aside, cache and DB can diverge briefly on writes. You need stronger cache-consistency.

Open

Write-back (write-behind) cache

Write throughput is high; every write hitting the DB creates load. But you don't need writes to be durable in the DB immediately.

Open

Write-around cache

Cache-aside with writes populating the cache can pollute the cache with never-read data (write-heavy but read-rare content).

Open

Pub/Sub

You want to broadcast an event to multiple consumers without coupling the producer to the list of consumers.

Open

Event-driven architecture

Tight coupling between services makes evolution painful. When service A directly calls service B, they must deploy together, know each other's contracts, and B's failures propagate to A.

Open

CQRS (Command Query Responsibility Segregation)

Your write model and read model have very different needs. Optimizing for one hurts the other.

Open

Event sourcing

Traditional state-based storage loses history: you know the current balance, but not why it's that value. Auditing, replay, and temporal queries are hard.

Open

Saga (Long-running distributed transaction)

You have a business transaction that spans multiple services or databases (place order → charge payment → reserve inventory → send confirmation). Two-phase commit is too slow, too coupling, and often not available across service boundaries.

Open

Transactional outbox

You need to atomically update your database AND publish an event to Kafka. Two-phase commit isn't available; publishing before the DB commit risks phantom events; publishing after risks lost events on crash.

Open

Change Data Capture (CDC)

You want to derive downstream systems (search index, cache, analytics) from your primary database — but polling for changes is expensive and misses deletes.

Open

Sharding (Horizontal partitioning)

Your dataset or write throughput has outgrown a single node. A single primary DB or single cache node can't hold the data or handle the QPS.

Open

Consistent hashing

You need to shard keys across N nodes, but N changes over time (nodes added, removed, or failed). Naive hash-mod-N reshuffles almost everything on every change — cache is wiped, migration cost is huge.

Open

Leader–follower replication

One node can't handle all reads. And if the node dies, you lose everything.

Open

Active–active

You need HA and scale in multiple regions. Passive standby wastes capacity; leader-follower has one region doing all the writes.

Open

Active–passive

You need HA but don't want the complexity or cost of active-active.

Open

Fan-out

One event or write must be distributed to many consumers or write destinations.

Open

Scatter–gather

You need to answer a query that requires data from multiple shards/services, and you need the aggregate result.

Open

Bulkhead

One misbehaving caller or workload consumes all your resources (threads, connections, memory) and starves everyone else.

Open

Circuit breaker

A downstream service is unhealthy. Your service keeps calling it, waiting the full timeout on every call, exhausting your thread pool, and cascading the failure back to your callers.

Open

Retry with exponential backoff + jitter

Transient failures (network hiccup, brief overload) succeed on retry. Retrying immediately makes overload worse (retry storm).

Open

Backpressure

Producers publish faster than consumers can process. Queues grow unbounded, memory fills up, and everything crashes.

Open

Rate limiting

One bad actor can consume all your capacity. And even good actors need bounds so you can capacity-plan.

Open

Load shedding

Your system is overloaded. Continuing to accept work makes it worse (all requests get slow, none complete on time).

Open

Strangler-fig

You have a legacy monolith you want to replace, but a big-bang rewrite is too risky.

Open

System design problems

Real interview problems. Every authored problem has L4/L5/L6/L7 alternatives-first designs with specific products, layers, SPOF mitigation, and configuration.

Fully authored with L4-L7 designs (43)

URL Shortener

beginner

The system-design interview's most famous first problem. We treat it as a scale-evolution study: four architectures for the same problem, from 10K to 1B RPS.

Open

Pastebin

beginner

Store and share text snippets by URL.

Open

File Upload Service

beginner

Direct-to-storage uploads with pre-signed URLs.

Open

Basic Chat

beginner

1:1 messaging with delivery guarantees.

Open

Task Scheduler

beginner

Enqueue and run one-shot and recurring tasks.

Open

Notification Service

beginner

Deliver push/email/SMS to a targeted user.

Open

Rate Limiter

beginner

Enforce budget on requests per client per window.

Open

Polling System

beginner

Create polls, cast votes, tally results.

Open

Web Crawler

beginner

Discover, fetch, and store the web in a bounded way.

Open

Instagram

intermediate

Photo/video feed, uploads, stories, direct-to-S3 media, hybrid fan-out feed, ML ranking.

Open

Twitter/X timeline

intermediate

Timeline generation with hybrid fan-out — push for regular users, pull for celebrities.

Open

YouTube

intermediate

Upload → transcode → CDN → recommendations. HLS delivery, ABR ladder, per-title encoding.

Open

Dropbox

intermediate

Block-level sync, deduplication, delta upload, conflict resolution.

Open

Google Drive

intermediate

Collaborative document storage.

Open

Netflix

intermediate

Global video streaming — CDN economics, ABR, DRM, chaos engineering, Open Connect.

Open

Uber

intermediate

Uber's real architectural evolution — monolith → SOA → Ringpop → DOMA.

Open

WhatsApp

intermediate

1:1 and group messaging at scale — WebSocket + MQTT, E2E encryption, multi-device sync.

Open

Slack

intermediate

Team messaging with presence, threads, search. Sharded WebSocket, team-affinity routing.

Open

Ticket Booking

intermediate

Concurrency control on hot seats. Hybrid Redis+DB holds, virtual queue for drops, anti-scalping.

Open

Food Delivery

intermediate

Restaurant discovery, order, delivery orchestration.

Open

Ride Sharing

intermediate

H3 geo-indexing, DISCO batched matching, surge pricing, city-sharded state.

Open

E-commerce

intermediate

Catalog, cart, checkout, inventory.

Open

Payment System

intermediate

Idempotent money movement with a double-entry ledger, provider integration, and reconciliation.

Open

Notification Platform

intermediate

Multi-tenant SaaS notification platform — templates, providers, orchestration, delivery receipts.

Open

Search Autocomplete

intermediate

Sub-100ms typed suggestions.

Open

News Feed

intermediate

Ranked, personalized feed generation.

Open

Distributed Cache

intermediate

In-memory KV cluster with replication.

Open

Google Search

advanced

Crawl → index → serve, at web scale.

Open

Global Notification System

advanced

Cross-region, high-throughput push.

Open

Global Rate Limiter

advanced

Approximate-consistent counters across regions.

Open

Distributed Job Scheduler

advanced

Scale-out cron with exactly-once semantics.

Open

Distributed Logging System

advanced

Ingest, index, and search at petabyte scale.

Open

Metrics Platform

advanced

Time-series ingest + query + alert.

Open

Distributed Search Engine

advanced

Sharded inverted index + query fan-out.

Open

Global Payment System

advanced

Multi-region ledger with reconciliation.

Open

Ad Serving System

advanced

Real-time bidding + serving in <100ms.

Open

Recommendation Infrastructure

advanced

Feature store, model serving, A/B.

Open

Real-time Analytics

advanced

Streaming ingest + interactive query.

Open

Kafka-like Streaming Platform

advanced

Distributed log with partitioning + replication.

Open

Distributed Database

advanced

Sharded, replicated, with configurable consistency.

Open

Global File Storage

advanced

Cross-region durable object storage.

Open

Massive YouTube

extreme

Global-scale video with adaptive bitrate + recommendations.

Open

Massive Netflix

extreme

Edge-heavy streaming at planetary scale.

Open
0 additional systems scaffolded — browse the full library at /systems

Real-company case studies

Deconstructions of production systems at scale, sourced from public engineering blogs and talks.

Company tracks

Company-specific rubrics, interview formats, top-10 questions, and delivery advice per company.

Level tracks

What changes at each level — L4 correctness of one component, L5 end-to-end design, L6 cross-team implications, L7 platform bets and ambiguity resolution.

Ready to practice?

Start with the flagship URL Shortener problem — 4 scale variants, 20 sections, full alternatives-first designs at every level.