Free learning playlist
System Design: Foundations to Distributed Data
A practical system design course covering estimation, APIs, storage, distributed data, reliability, consensus, streams, and production case studies.
- Audience
- Software engineers who want a repeatable path from a simple design to production trade-offs.
- Publishing
- New System Design lesson every Friday
- Progress
- 4 published · 27 planned
COMPLETE CURRICULUM / REFERENCES
Everything this course will cover
The complete curriculum is visible below—including unpublished lessons. Status labels distinguish what is available, what comes next, and what remains planned.
Books and primary references
- The course follows a repeatable teaching structure: concept, production explanation, interview explanation, memory chart, case study, practice, failure modes, and teach-back.
- The supplied Designing Data-Intensive Applications syllabus defines the data-systems spine from reliability and data models through replication, partitioning, transactions, consensus, batch, and streams.
- Google SRE books and workbook supply measurable reliability, SLO, overload, incident, monitoring, and operational practices.
- AWS Builders’ Library and Well-Architected material supply concrete production patterns, failure analysis, capacity, retries, backpressure, and multi-region trade-offs.
- IETF RFCs, official database documentation, and original distributed-systems papers define normative behavior and algorithmic guarantees.
Implementation layer
System Design lessons use executable Python for estimators, simulations, hashing, queues, consistency anomalies, replication lag, partitioning, and stream-processing exercises. Architecture lessons also include accessible SVG system-flow diagrams plus text fallbacks.
Module 01
The system design solving framework
4 lessonsLearn what to ask, calculate, draw, and defend before selecting technology.
What this module covers
- functional and non-functional requirements, scope, constraints, invariants, and quality targets
- repeatable clarification-to-trade-off framework and design worksheet
- DAU, actions, QPS, peaks, read/write ratios, storage, bandwidth, working sets, skew, and hot keys
- HTTP/event contracts, idempotency, pagination, error semantics, access-pattern-driven data models, indexes, and retention
Reference spine: System Design course framework · Google SRE Workbook · RFC 9110 and RFC 9457 · DDIA Chapter 1 foundations
Module 02
Core building blocks
5 lessonsUnderstand the behavior and cost of the components that appear in real system diagrams.
What this module covers
- networking, DNS, HTTP, TLS, proxies, API gateways, CDNs, and edge delivery
- vertical/horizontal scaling, load balancing algorithms, health checks, failover, and stateless services
- cache-aside/read-through/write-through/write-back, TTL, invalidation, stampedes, hot keys, and consistency
- queues, logs, workers, delivery semantics, ordering, retries, dead letters, backpressure, and load shedding
- object storage, search indexes, rate limiting, quotas, service discovery, and configuration
Reference spine: System Design course framework · Google SRE · AWS Builders’ Library · official HTTP/Redis/Kafka/cloud documentation
- 05Networking, HTTP, DNS, and CDNsNext lessonUpcoming
- 06Load Balancing and Horizontal ScalingPlannedUpcoming
- 07Caching Strategies and InvalidationPlannedUpcoming
- 08Queues, Workers, and BackpressurePlannedUpcoming
- 09Object Storage, Search, and Rate LimitsPlannedUpcoming
Module 03
Foundations of data systems
4 lessonsFollow the core DDIA progression from dependable applications through storage and schema evolution.
What this module covers
- reliability, hardware/software/human faults, scalability, load, performance percentiles, operability, simplicity, and evolvability
- relational/document/graph models, object-relational mismatch, relationships, declarative queries, MapReduce, Cypher, SPARQL, and Datalog
- hash indexes, SSTables, LSM trees, B-trees, in-memory systems, OLTP/OLAP, warehouses, column stores, compression, sort order, and materialized views
- JSON/XML/binary formats, Thrift, Protocol Buffers, Avro, schema evolution, REST/RPC, databases, and message dataflow
Reference spine: DDIA Chapters 1–4 · official database and serialization documentation
- 10Reliable, Scalable, and Maintainable SystemsPlannedUpcoming
- 11Data Models and Query LanguagesPlannedUpcoming
- 12Storage, Retrieval, and IndexesPlannedUpcoming
- 13Encoding and Schema EvolutionPlannedUpcoming
Module 04
Distributed data
5 lessonsDevelop precise mental models for replicated, partitioned, transactional, and coordinated systems.
What this module covers
- leader/follower, synchronous/asynchronous replication, failover, logs, lag, read-your-writes, monotonic/prefix reads, multi-leader, leaderless, quorums, conflicts, and version vectors
- range/hash partitioning, skew, hot spots, secondary indexes, rebalancing, routing, and parallel execution
- ACID, read committed, snapshot isolation, lost updates, write skew, phantoms, serial execution, 2PL, and SSI
- partial failures, unreliable networks, timeouts, clocks, process pauses, fencing, fault detection, knowledge, system models, and Byzantine faults
- linearizability, causality, ordering, total-order broadcast, 2PC, consensus, membership, and coordination
Reference spine: DDIA Chapters 5–9 · original CAP, clock, transaction, and consensus papers · official database documentation
- 14Replication: Leaders, Followers, and QuorumsPlannedUpcoming
- 15Partitioning, Rebalancing, and Hot SpotsPlannedUpcoming
- 16Transactions, Isolation, and SerializabilityPlannedUpcoming
- 17Partial Failures, Clocks, and TimeoutsPlannedUpcoming
- 18Consistency, Ordering, and ConsensusPlannedUpcoming
Module 05
Derived data and production systems
4 lessonsConnect batch and streaming dataflows to operations, security, recovery, and real architectures.
What this module covers
- Unix data processing, MapReduce execution, joins, grouping, distributed filesystems, materialization, iterative graphs, and higher-level APIs
- messaging systems, partitioned logs, database/stream integration, CDC, event sourcing, immutability, event time, windows, joins, and stream fault tolerance
- capacity and overload, multi-region topologies, disaster recovery, RPO/RTO, backups, restore tests, migrations, and graceful degradation
- metrics/logs/traces, SLI/SLO, security boundaries, threat modeling, privacy, cost models, ownership, and operations
Reference spine: DDIA Chapters 10–11 · Google SRE · AWS Builders’ Library · Kafka and stream-processor documentation
- 19Batch Processing and DataflowsPlannedUpcoming
- 20Stream Processing, CDC, and Event SourcingPlannedUpcoming
- 21Multi-Region Design and Disaster RecoveryPlannedUpcoming
- 22Observability, Security, and CostPlannedUpcoming
Module 06
End-to-end case studies
5 lessonsApply the framework and expose the failure modes hidden by clean architecture diagrams.
What this module covers
- URL shortener and distributed rate limiter
- chat, notification, and presence systems
- news feed and fan-out strategies
- file upload, media delivery, and object storage
- search, autocomplete, indexing, and ranking
- payments, ledgers, idempotency, reconciliation, and workflows
- analytics pipelines, batch/stream integration, and a production RAG platform
Reference spine: System Design case-study framework · DDIA concepts · Google SRE and AWS production guidance · relevant protocols and official service documentation
- 23Design a URL ShortenerPlannedUpcoming
- 24Design a Chat SystemPlannedUpcoming
- 25Design a News FeedPlannedUpcoming
- 26Design a Payment SystemPlannedUpcoming
- 27Design a Production RAG PlatformPlannedUpcoming