CS404

Distributed Systems

Building systems that span many machines: consistency tradeoffs, consensus, and fault tolerance.

10 modules · 50 lessons · Practice after every lesson

Syllabus

  1. Module 1

    Distributed-System Models

    • Goals and Challenges of Distribution
    • Failure Models
    • Timing Models and Asynchrony
    • Safety and Liveness
    • System Models and Impossibility Results
  2. Module 2

    Communication and Remote Invocation

    • Messages and Serialization
    • Remote Procedure Calls
    • Retries, Timeouts, and Duplicate Suppression
    • Idempotence
    • Naming and Service Discovery
  3. Module 3

    Time and Ordering

    • Physical Clocks and Synchronization
    • Logical Clocks
    • Vector Clocks and Causality
    • Global Snapshots
    • Total and Partial Order Broadcast
  4. Module 4

    Replication and Consistency

    • Replication Strategies
    • Linearizability and Sequential Consistency
    • Eventual and Causal Consistency
    • Quorums and Versioning
    • Conflict Resolution and CRDTs
  5. Module 5

    Consensus

    • The Consensus Problem
    • Leader Election
    • Paxos Concepts
    • Raft
    • Byzantine Fault Tolerance: An Introduction
  6. 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
  7. Module 7

    Distributed Storage

    • Partitioning and Consistent Hashing
    • Replicated Logs
    • Distributed Key–Value Stores
    • Distributed File Systems
    • Metadata, Rebalancing, and Repair
  8. Module 8

    Distributed Computation

    • Batch Dataflow and MapReduce
    • Stream Processing
    • Backpressure and Watermarks
    • Distributed Scheduling
    • Serverless and Elastic Computation
  9. Module 9

    Reliability and Operations

    • Failure Detection
    • Load Balancing and Overload Control
    • Observability and Distributed Tracing
    • Chaos Engineering
    • Capacity Planning and Multi-Region Design
  10. 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.