📚 Free & Open · No Login Required

Master System Design.
Ace the Interview.

Practical system design guides with visual diagrams. Built for engineers who want to understand distributed systems deeply, not just memorize interview patterns.

Guides
Reading
Free Forever

Foundations

Foundations

Networking Fundamentals for System Design

IP addresses, OSI model layers, TCP vs UDP, and DNS resolution — the networking foundation every system designer needs.

Foundations

How Load Balancers Work

Load balancing algorithms, L4 vs L7 balancers, health checks, sticky sessions, and when to use each strategy in production systems.

Foundations

Clustering

How server clusters work, active-passive vs active-active modes, leader election, quorum, and coordination services like ZooKeeper and etcd.

Foundations

Caching

Cache types, eviction policies, write strategies, cache invalidation, and distributed caching with Redis and Memcached.

Foundations

Content Delivery Networks (CDN)

How CDNs work, push vs pull models, caching at the edge, and when to use a CDN in system design.

Foundations

Proxy (Forward & Reverse)

How forward and reverse proxies work, their differences, and how to apply them for security, load balancing, and caching.

Foundations

Availability

How to measure availability with nines, eliminate single points of failure, design for redundancy and failover, and reason about the consistency trade-off.

Foundations

Scalability

Vertical vs horizontal scaling, stateless design, database scaling strategies, and how to design systems that handle 10x traffic without rewriting everything.

Foundations

Storage

Block, file, and object storage explained. RAID levels, NAS vs SAN, HDFS, and how to choose the right storage type for your system design.

Databases

Databases

Databases & DBMS

What databases and database management systems actually do, the components under the hood, common database types, and the key challenges you face designing data layers at scale.

Databases

SQL Databases

How relational databases work: ACID guarantees, schema design, indexes, query planning, and when SQL is the right choice for your system.

Databases

NoSQL Databases

Document, key-value, wide-column, and graph databases explained. When NoSQL outperforms SQL, what you give up, and how to pick the right type for your workload.

Databases

SQL vs NoSQL

A direct comparison across consistency, scalability, schema flexibility, and query power. How to choose the right model for your system.

Databases

Database Replication

Primary-replica topology, synchronous vs asynchronous replication, replication lag, multi-primary conflicts, and automated failover strategies.

Databases

Indexes

B-tree and hash indexes, composite index column ordering, covering indexes, partial indexes, write overhead, and how to read EXPLAIN output to diagnose slow queries.

Databases

Normalization & Denormalization

Normal forms 1NF through BCNF, how redundancy causes update anomalies, and when to deliberately denormalize with materialized views and embedded documents for read performance.

Databases

ACID and BASE

ACID transaction guarantees — atomicity, isolation levels, durability via WAL — and the BASE model of eventual consistency for distributed systems.

Databases

CAP Theorem

Consistency, Availability, and Partition Tolerance: why distributed systems can guarantee only two, CP vs AP system trade-offs, and real-world implications.

Databases

PACELC Theorem

How PACELC extends CAP by adding the latency vs consistency trade-off that governs every request during normal operation — PA/EL, PC/EC, and tunable systems.

Databases

Transactions

What database transactions are, how ACID properties are enforced, isolation levels, concurrency anomalies, and how WAL and MVCC make atomicity and durability possible.

Databases

Distributed Transactions

Two-phase commit, the Saga pattern, choreography vs orchestration, and the outbox pattern — how to achieve atomicity across multiple services without a global lock.

Databases

Sharding

How to partition a database horizontally across multiple servers: choosing a shard key, range vs hash sharding, avoiding hot spots, cross-shard queries, and resharding.

Databases

Consistent Hashing

The hash ring, virtual nodes, and why consistent hashing remaps only 1/N keys when a node is added — used in Cassandra, DynamoDB, Memcached, and distributed load balancers.

Databases

Database Federation

How to split a monolithic database by function — independent schemas, autonomous teams, and the trade-offs around cross-database joins and distributed transactions.

Architecture Patterns

Common architectural patterns for structuring distributed systems — from foundational N-tier layering to event-driven and microservice designs.

Production Concerns

Reliability, observability, and operational patterns that keep distributed systems running in production — logging, monitoring, rate limiting, and more.

Production Concerns

Coming Soon

Guides covering logging, monitoring, alerting, rate limiting, circuit breakers, and other production reliability patterns are on the way.

Case Studies

End-to-end system design walkthroughs — designing systems like URL shorteners, social feeds, ride-sharing platforms, and video streaming services from scratch.

Case Studies

Coming Soon

End-to-end case studies applying every concept from the curriculum to real-world system design problems are on the way.