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.
Foundations concepts
Core distributed-systems concepts every candidate needs. Start here.
Requirements → Scale → Bottleneck → Solution
The four-step loop that lets you reason about any system at any scale. This is the platform's thesis.
OpenCAP and PACELC — the trade-off you can't avoid
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.
OpenBack-of-the-envelope: from DAU to peak RPS
Numbers before diagrams. How to derive traffic, storage, bandwidth, and cache from a headline DAU number in under 3 minutes.
OpenScalability — horizontal vs vertical
Two ways to add capacity, and why one usually wins at scale.
OpenAvailability — the nines and their cost
What 99.9% vs 99.99% actually means, and what each nine costs.
OpenReliability — MTBF, MTTR, and error budgets
How to talk about reliability without hand-waving.
OpenDurability — the guarantee you can't fudge
Once you say 'stored', you own it forever.
OpenLatency vs throughput
Two axes that pull in opposite directions.
OpenConsistency models
Linearizable, sequential, causal, eventual — and when each is enough.
OpenACID and BASE
Two philosophies of correctness under contention.
OpenStateful vs stateless
Why stateless services are cheaper to scale — and where state has to live instead.
OpenSync vs async communication
When to make the caller wait, and when to fire-and-forget.
OpenBatch vs streaming processing
Two paradigms for computing over data, and where each wins.
OpenPush vs pull
Who initiates? The choice defines your fan-out topology.
OpenNetwork Layers — OSI 1-7 and TCP/IP
The 7-layer model that lets you reason about any network problem. Where each protocol sits and what real systems live at each layer.
OpenHTTP / HTTPS
The request-response protocol that runs the web.
OpenTCP vs UDP
Reliable-ordered vs fire-and-forget — and when you want the second.
OpenDNS
How a name becomes an IP — and how DNS becomes a load balancer.
OpenTLS
How the connection becomes private without a shared secret upfront.
OpenWebSockets and SSE
Two ways to keep the server talking to the client.
OpenHTTP/2 and HTTP/3
Multiplexing and QUIC — how HTTP got faster after 20 years.
OpenCDN and Anycast
Serving the same IP from many places at once.
OpenTCP internals — handshake and congestion control
The 3-way handshake, sliding window, and how BBR/CUBIC decide how fast to send.
OpenHTTPS handshake (TLS 1.3 deep dive)
How ClientHello + ServerHello + Finished set up a secure channel in 1 round-trip.
OpenLoad balancer internals — L4 vs L7
Packet routing vs HTTP-aware routing, health checks, sticky sessions.
OpenConnection pooling
Why creating a TCP connection per request kills you at scale.
OpenBGP + Anycast internals
How the internet's routing table serves the same IP from 300 places at once.
OpengRPC vs REST
Protobuf + HTTP/2 streaming vs JSON + HTTP/1.1 — when each wins.
OpenHTTP idempotency & retries
How idempotency-keys turn unreliable networks into safe retries — Stripe, Shopify, OpenAI patterns.
OpenHTTP request lifecycle — animated end-to-end
A checkout API request from browser click to backend response — DNS, TCP, TLS, LB routing, backend. HTTP vs HTTPS side-by-side.
OpenConsensus — Paxos and Raft
How machines agree on one value despite failures. The algorithm underneath leader election.
OpenConsistent hashing
The ring algorithm behind Cassandra, DynamoDB, Redis Cluster, and every CDN.
OpenDistributed transactions — 2PC, 3PC, Saga, TCC
Four ways to make N services commit together — with the trade-offs each accepts.
OpenVector clocks and hybrid logical clocks
How Lamport clocks + HLC establish causal order without a global clock.
OpenCRDTs — conflict-free replicated data types
G-Counter, LWW-Register, OR-Set — data structures that merge without conflict.
OpenQuorum reads and writes
The R+W>N formula that makes eventually-consistent stores feel consistent.
OpenGossip protocols
How Cassandra and Serf propagate cluster state at O(log N) — like disease spread.
OpenDistributed locks — Redlock, ZooKeeper, Chubby
The 3 industry patterns for mutual exclusion across machines.
OpenLeader election
The general problem: how do N machines pick one boss, and how do they replace it when it dies?
OpenDatabase Types — SQL, NoSQL, NewSQL
The taxonomy of database engines: relational, key-value, document, wide-column, graph, time-series, search, vector, and NewSQL — with when to pick each.
OpenIndexes — the promise and the cost
Indexes turn table scans into lookups; every index taxes writes.
OpenB-trees
The data structure inside most relational databases.
OpenLSM trees
Write-optimized storage — how LevelDB, RocksDB, and Cassandra store data.
OpenIsolation levels
Read committed, repeatable read, serializable — what each protects against.
OpenMVCC
How Postgres keeps readers and writers out of each other's way.
OpenReplication — leader, multi-leader, leaderless
Three topologies for the same problem: keep multiple copies in sync.
OpenSharding strategies
Range, hash, and consistent-hash — the trade-offs and hot-key traps.
OpenWrite-ahead log (WAL)
The append-only log that gives databases durability without slow fsyncs everywhere.
OpenQuery planners and join algorithms
How Postgres picks nested-loop vs hash vs merge join — and why one query is 1000x faster than another.
OpenVector databases — HNSW, IVF, ScaNN
The similarity-search index behind every RAG system in 2025.
OpenComponents
The building blocks — load balancers, databases, caches, queues. Every component has a comprehensive why/how/when story.
Load Balancer
Distributes incoming traffic across a pool of servers for scale and fault tolerance.
OpenAPI Gateway
Single entry point that handles auth, rate limiting, routing, and protocol translation for downstream services.
OpenCDN (Content Delivery Network)
A globally distributed cache that serves static and cacheable dynamic content close to the user.
OpenRedis
An in-memory key-value store used for caching, pub/sub, rate limiting, distributed locks, and simple queues.
OpenSQL Database
A row-oriented, ACID-compliant relational database — the default for transactional workloads.
OpenMySQL
The world's most-deployed open-source relational database — clustered PK index, InnoDB MVCC, Vitess for sharding at billions-of-rows scale.
OpenPostgreSQL
The extensible, standards-compliant relational database — MVCC via xmin/xmax, richest type system in SQL, extensions from PostGIS to pgvector.
OpenNoSQL Database
Umbrella for document, wide-column, and key-value stores optimized for horizontal scale over strict schema.
OpenKafka
A distributed, partitioned, replicated commit log for event streaming, high-throughput ingest, and decoupled services.
OpenMessage Queue
Async task queue that decouples producers from consumers and smooths bursts. Each message is processed exactly once (per-message ACK model).
OpenObject Storage (S3, GCS, Azure Blob)
Durable, cheap, flat-namespace storage for blobs — images, videos, backups, logs, and any large binary object.
OpenSearch Engine (Elasticsearch, OpenSearch, Meilisearch)
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.
OpenStream Processor (Flink, Kafka Streams, Spark Structured Streaming)
Continuous computation over event streams — windowed aggregations, joins, ML features, and event-driven derived views.
OpenRate Limiter
Enforces per-caller (per-user, per-IP, per-tenant) request budgets to protect downstream systems from abuse and overload.
OpenScheduler (cron, Airflow, Temporal timers)
Runs jobs at a time or interval — the simplest form of eventual asynchronous computation.
OpenWorkflow Engine (Temporal, Cadence, AWS Step Functions)
Orchestrates long-running, stateful multi-step processes — the right tool when a business flow involves many services and can span days.
OpenDistributed Lock (ZooKeeper, etcd, Redis Redlock)
Cross-node mutual exclusion — 'only one node can do this at a time' when you can't rely on a single-node lock.
OpenService Discovery (Consul, etcd, DNS-based)
How services find each other in a dynamic fleet — because IPs change, nodes come and go, and hardcoding is a losing game.
OpenDistributed Database (DynamoDB, Cassandra, Spanner)
Horizontally-scaled database with automatic partitioning and replication — the answer when one node can't hold the data or the traffic.
OpenPatterns
Repeatable architectural solutions to recurring problems — Cache-aside, Circuit Breaker, Saga, CQRS, and more.
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.
OpenRead-through cache
Your application logic has to duplicate cache-management code everywhere it reads — check cache, on miss read DB, populate cache, return.
OpenWrite-through cache
In cache-aside, cache and DB can diverge briefly on writes. You need stronger cache-consistency.
OpenWrite-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.
OpenWrite-around cache
Cache-aside with writes populating the cache can pollute the cache with never-read data (write-heavy but read-rare content).
OpenPub/Sub
You want to broadcast an event to multiple consumers without coupling the producer to the list of consumers.
OpenEvent-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.
OpenCQRS (Command Query Responsibility Segregation)
Your write model and read model have very different needs. Optimizing for one hurts the other.
OpenEvent 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.
OpenSaga (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.
OpenTransactional 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.
OpenChange 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.
OpenSharding (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.
OpenConsistent 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.
OpenLeader–follower replication
One node can't handle all reads. And if the node dies, you lose everything.
OpenActive–active
You need HA and scale in multiple regions. Passive standby wastes capacity; leader-follower has one region doing all the writes.
OpenActive–passive
You need HA but don't want the complexity or cost of active-active.
OpenFan-out
One event or write must be distributed to many consumers or write destinations.
OpenScatter–gather
You need to answer a query that requires data from multiple shards/services, and you need the aggregate result.
OpenBulkhead
One misbehaving caller or workload consumes all your resources (threads, connections, memory) and starves everyone else.
OpenCircuit 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.
OpenRetry with exponential backoff + jitter
Transient failures (network hiccup, brief overload) succeed on retry. Retrying immediately makes overload worse (retry storm).
OpenBackpressure
Producers publish faster than consumers can process. Queues grow unbounded, memory fills up, and everything crashes.
OpenRate limiting
One bad actor can consume all your capacity. And even good actors need bounds so you can capacity-plan.
OpenLoad shedding
Your system is overloaded. Continuing to accept work makes it worse (all requests get slow, none complete on time).
OpenStrangler-fig
You have a legacy monolith you want to replace, but a big-bang rewrite is too risky.
OpenSystem design problems
Real interview problems. Every authored problem has L4/L5/L6/L7 alternatives-first designs with specific products, layers, SPOF mitigation, and configuration.
URL Shortener
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.
OpenPastebin
Store and share text snippets by URL.
OpenFile Upload Service
Direct-to-storage uploads with pre-signed URLs.
OpenBasic Chat
1:1 messaging with delivery guarantees.
OpenTask Scheduler
Enqueue and run one-shot and recurring tasks.
OpenNotification Service
Deliver push/email/SMS to a targeted user.
OpenRate Limiter
Enforce budget on requests per client per window.
OpenPolling System
Create polls, cast votes, tally results.
OpenWeb Crawler
Discover, fetch, and store the web in a bounded way.
OpenPhoto/video feed, uploads, stories, direct-to-S3 media, hybrid fan-out feed, ML ranking.
OpenTwitter/X timeline
Timeline generation with hybrid fan-out — push for regular users, pull for celebrities.
OpenYouTube
Upload → transcode → CDN → recommendations. HLS delivery, ABR ladder, per-title encoding.
OpenDropbox
Block-level sync, deduplication, delta upload, conflict resolution.
OpenGoogle Drive
Collaborative document storage.
OpenNetflix
Global video streaming — CDN economics, ABR, DRM, chaos engineering, Open Connect.
OpenUber
Uber's real architectural evolution — monolith → SOA → Ringpop → DOMA.
Open1:1 and group messaging at scale — WebSocket + MQTT, E2E encryption, multi-device sync.
OpenSlack
Team messaging with presence, threads, search. Sharded WebSocket, team-affinity routing.
OpenTicket Booking
Concurrency control on hot seats. Hybrid Redis+DB holds, virtual queue for drops, anti-scalping.
OpenFood Delivery
Restaurant discovery, order, delivery orchestration.
OpenRide Sharing
H3 geo-indexing, DISCO batched matching, surge pricing, city-sharded state.
OpenE-commerce
Catalog, cart, checkout, inventory.
OpenPayment System
Idempotent money movement with a double-entry ledger, provider integration, and reconciliation.
OpenNotification Platform
Multi-tenant SaaS notification platform — templates, providers, orchestration, delivery receipts.
OpenSearch Autocomplete
Sub-100ms typed suggestions.
OpenNews Feed
Ranked, personalized feed generation.
OpenDistributed Cache
In-memory KV cluster with replication.
OpenGoogle Search
Crawl → index → serve, at web scale.
OpenGlobal Notification System
Cross-region, high-throughput push.
OpenGlobal Rate Limiter
Approximate-consistent counters across regions.
OpenDistributed Job Scheduler
Scale-out cron with exactly-once semantics.
OpenDistributed Logging System
Ingest, index, and search at petabyte scale.
OpenMetrics Platform
Time-series ingest + query + alert.
OpenDistributed Search Engine
Sharded inverted index + query fan-out.
OpenGlobal Payment System
Multi-region ledger with reconciliation.
OpenAd Serving System
Real-time bidding + serving in <100ms.
OpenRecommendation Infrastructure
Feature store, model serving, A/B.
OpenReal-time Analytics
Streaming ingest + interactive query.
OpenKafka-like Streaming Platform
Distributed log with partitioning + replication.
OpenDistributed Database
Sharded, replicated, with configurable consistency.
OpenGlobal File Storage
Cross-region durable object storage.
OpenMassive YouTube
Global-scale video with adaptive bitrate + recommendations.
OpenMassive Netflix
Edge-heavy streaming at planetary scale.
OpenReal-company case studies
Deconstructions of production systems at scale, sourced from public engineering blogs and talks.
Netflix Streaming — how ~250M subscribers watch ~1B hours a day
How Netflix delivers video at global scale using Open Connect (ISP-embedded CDN), adaptive bitrate, chaos engineering, and multi-region active-active for the control plane.
OpenUber Dispatch — matching riders to drivers at planetary scale
H3 hexagonal geo-index, DISCO batch matching, and surge pricing — a real-time marketplace serving 10K+ cities and ~28M trips/day.
OpenWhatsApp — 100B+ messages a day on a small team
Erlang, fan-out, presence, and the discipline of doing one thing well.
OpenGoogle Search — crawl, index, and serve at web scale
Crawler, inverted index, PageRank, freshness, and the serving stack.
OpenDynamoDB — Amazon's leaderless key-value store
Consistent hashing, quorum reads/writes, and gossip.
OpenCompany tracks
Company-specific rubrics, interview formats, top-10 questions, and delivery advice per company.
Meta
Product-first framing — you connect the design to real user impact
OpenAmazon
Operational rigor — how would you run this on-call?
OpenDepth on distributed systems primitives (consensus, replication, sharding)
OpenNetflix
Resilience-first thinking — assume failure, design around it
OpenUber
Realistic geo reasoning — H3, quad-trees, geohashing
OpenMicrosoft
Azure-service familiarity — you know when to reach for Cosmos DB vs SQL DB vs Cache
OpenStripe
Correctness of money movement — idempotency is non-negotiable
OpenCloudflare
Edge-first thinking — assume the answer runs in every PoP
OpenLevel 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.
L4 — Software Engineer II (correctness of one component)
At L4, the interviewer wants to see that you can correctly design one non-trivial component end-to-end. Depth beats brea...
OpenL5 — Senior Engineer (end-to-end design with trade-offs)
At L5, you own an end-to-end feature. The interviewer wants to see multiple components fit together, explicit trade-offs...
OpenL6 — Staff Engineer (cross-team implications, capacity, migration)
At L6, the interviewer expects you to think about org-wide implications: which team owns what, capacity forecasting, mig...
OpenL7 — Principal / Distinguished (ambiguity, org design, precedent-setting)
At L7, the interviewer will deliberately give you an ambiguous problem. The signal is not the final architecture — it's ...
OpenReady to practice?
Start with the flagship URL Shortener problem — 4 scale variants, 20 sections, full alternatives-first designs at every level.