System design · Optional depth
Under the hood: how the technologies really work
The modules teach what to choose and why. These deep dives go one level lower: how each technology works inside, and how the major products differ, such as why a MySQL secondary lookup walks two trees, how Redis grows its hash table without pausing, or what "repeatable read" means in PostgreSQL versus MySQL. Each one sits, collapsed, at the end of its module. 19 of 20 are ready.
The deep dives
| # | Area | Where | Status |
|---|---|---|---|
| 1 | Indexes and storage engines B-tree vs B+tree vs B-link tree, clustered tables vs heaps, hash growth, LSM trees and compaction, special indexes, 15 products compared. | Module 12 · Indexes and storage engines | Ready |
| 2 | Transactions and isolation What each isolation level really means per product, 2PL vs MVCC vs SSI vs OCC, where old versions live, WAL and recovery, 2PC and Percolator. | Module 17 · Transactions and contention | Ready |
| 3 | Replication and failover Physical vs logical replication, sync vs async acknowledgement, quorums, chain replication, failover and fencing, leaderless repair. | Module 14 · Replication | Ready |
| 4 | Partitioning and sharding Range vs hash partitioning, consistent hashing variants, splitting and rebalancing, routing, scatter-gather, global secondary indexes. | Module 15 · Sharding and consistent hashing | Ready |
| 5 | Caching internals Eviction algorithms from LRU to TinyLFU, stampedes and single-flight, the stale-fill race, two-tier caches, HTTP caching semantics. | Module 09 · Caching | Ready |
| 6 | Object, file and block storage The object API, multipart uploads, signed URLs, overwrites and versioning, erasure coding, content-defined chunking, SSD internals. | Module 10 · Blob storage and CDNs | Ready |
| 7 | Messaging internals Queues vs logs, consumer groups and rebalancing, visibility timeouts, exactly-once, log segments and compaction, Kafka vs SQS vs RabbitMQ vs Pulsar. | Module 18 · Queues and event streams | Ready |
| 8 | Processing, analytics and time series Row vs column storage, vectorized execution, the shuffle, lineage vs checkpoints, watermarks, time-series compression. | Module 23 · Batch, stream and background jobs | Ready |
| 9 | Search, vectors and geospatial Analyzers, posting lists and BM25, segment merges, HNSW and IVF, filtered vector search, geohash, quadtrees, S2 and H3. | Module 13 · Choosing a database | Ready |
| 10 | Consensus, time and CRDTs Raft in detail, Paxos and ZAB, leases and fencing tokens, gossip and failure detection, clocks, CRDTs vs operational transformation. | Module 21 · Consensus and coordination | Coming |
| 11 | Networking, proxies and rate limiting TCP congestion control, TLS 1.3 details, HTTP/2 and HTTP/3 framing, DNS end to end, load-balancing and rate-limiting algorithms. | Module 06 · Networking and protocols | Ready |
| 12 | Runtimes, the OS and containers Threads vs event loops, the page cache and fsync, epoll and io_uring, garbage collectors, cgroups and CPU throttling, the Kubernetes control loop. | B2 · Inside one machine | Ready |
| 13 | Security internals Hashes vs MACs vs password hashing, AEAD and nonce reuse, post-quantum TLS, certificate transparency, cookies and passkeys, policy engines. | Module 26 · Security | Ready |
| 13 | Observability internals Metric types and percentiles, cardinality, trace context propagation, head vs tail sampling, log indexing, SLO burn-rate alerts. | Module 25 · Observability | Ready |
| 14 | Data formats and compression JSON vs Protobuf vs Avro, schema evolution, gzip, Brotli, zstd and LZ4, with a live size lab. | Module 07 · API design | Ready |
| 14 | Workflow engines and timers Durable execution and replay, Temporal vs Step Functions vs Airflow, hierarchical timing wheels, cron in a cluster. | Module 22 · Workflows, sagas and the outbox | Ready |
| 14 | Money and ledgers Double-entry ledgers with a live lab, idempotency keys, reconciliation, PCI scope. | Module 17 · Transactions and contention | Ready |
| 14 | Video delivery Encoding ladders and codecs, HLS, DASH and CMAF, DRM, an adaptive-bitrate lab, live latency. | Module 10 · Blob storage and CDNs | Ready |
| 14 | Model serving internals Prefill and decode, a KV-cache memory lab, batching, quantization, speculative decoding, parallelism. | Module 29 · Designing AI systems | Ready |
| 14 | Everything else Dijkstra vs A* with a grid lab, contraction hierarchies, push and email delivery, recommendation pipelines, edge and offline, file sync. | Module 28 · Architecture styles | Ready |
How to use them
- Finish the module first. The deep dive assumes its main sections; it's the answer to the interviewer's follow-up "and how does that work inside?"
- Learn the differences, not every detail. Interviewers probe where products differ (clustered vs heap tables, snapshot vs serializable). Each deep dive ends with a product-by-product table and "say it in the interview" answers.
- Try the labs. Insert keys into a real B+tree, race two transactions under each isolation level: watching it happen sticks better than reading.
- Product facts are checked against each vendor's documentation, with sources at the end of every deep dive.