CS404
Distributed Systems
Building systems that span many machines: consistency tradeoffs, consensus, and fault tolerance.
10 modules · 50 lessons · Practice after every lesson
Syllabus
Module 1
Distributed-System Models
- Goals and Challenges of Distribution
- Failure Models
- Timing Models and Asynchrony
- Safety and Liveness
- System Models and Impossibility Results
Module 2
Communication and Remote Invocation
- Messages and Serialization
- Remote Procedure Calls
- Retries, Timeouts, and Duplicate Suppression
- Idempotence
- Naming and Service Discovery
Module 3
Time and Ordering
- Physical Clocks and Synchronization
- Logical Clocks
- Vector Clocks and Causality
- Global Snapshots
- Total and Partial Order Broadcast
Module 4
Replication and Consistency
- Replication Strategies
- Linearizability and Sequential Consistency
- Eventual and Causal Consistency
- Quorums and Versioning
- Conflict Resolution and CRDTs
Module 5
Consensus
- The Consensus Problem
- Leader Election
- Paxos Concepts
- Raft
- Byzantine Fault Tolerance: An Introduction
Module 6
Distributed Transactions
- Atomic Commit and Two-Phase Commit
- Distributed Concurrency Control
- Isolation Across Services
- Sagas and Compensating Actions
- Exactly-Once Effects and Outbox Patterns
Module 7
Distributed Storage
- Partitioning and Consistent Hashing
- Replicated Logs
- Distributed Key–Value Stores
- Distributed File Systems
- Metadata, Rebalancing, and Repair
Module 8
Distributed Computation
- Batch Dataflow and MapReduce
- Stream Processing
- Backpressure and Watermarks
- Distributed Scheduling
- Serverless and Elastic Computation
Module 9
Reliability and Operations
- Failure Detection
- Load Balancing and Overload Control
- Observability and Distributed Tracing
- Chaos Engineering
- Capacity Planning and Multi-Region Design
Module 10
Security and System Trade-Offs
- Authentication Between Services
- Secure Membership and Key Distribution
- CAP and PACELC Reasoning
- Privacy and Data Sovereignty
- Evaluating Distributed-System Designs
Start Distributed Systems.
No setup, nothing to install. Try the first lessons before you sign up.