Distributed Systems

ECE419, Winter 2026
University of Toronto
Instructor: Ashvin Goel

    Distributed Systems

Lecture material

The lectures will provide an understanding of the fundamental concepts in distributed systems and discuss several case studies of deployed systems.

The instructor will make lecture material available here as topics are covered in class. Lecture videos will not be recorded.

Topic # Topic and instructors slides Additional material
1. Introduction
Introduction to the course Reading: Introduction to Distributed System Design
2. Programming distributed systems
Threads and concurrency Code: Hello World
Code: Web Crawler
Models of distributed systems
Remote procedure calls Code: RPC
Reading: Implementing Remote Procedure Calls
Time in distributed systems Reading: Time, Clocks, and the Ordering of Events in a Distributed System
Reading: Clock Synchronization
Broadcast communication Reading: Broadcast mechanisms
3. Highly consistent, replicated systems
Strong consistency models Reading: Consistency Models
Replication
Consensus
Case Study 1: Consensus in Raft Reading: In Search of an Understandable Consensus Algorithm (Extended Version)
Video: In Search of an Understandable Consensus Algorithm
Animation: The Secret Lives of Data
Case Study 2: Coordination with ZooKeeper Reading: ZooKeeper: Wait-free Coordination for Internet-scale Systems
Video: ZooKeeper: Wait-free Coordination for Internet-scale Systems
4. Scalable and highly available systems
Weak consistency models Reading: CAP Twelve Years Later: How the "Rules" Have Changed
Reading: Clarifications On The CAP Theorem And Data-Related Errors
Reading: Eventually Consistent
Reading: Replicated Data Consistency Explained Through Baseball
Scalable systems
Case Study 3: Dynamo: Highly Available KV Store Reading: Dynamo: Amazon's Highly Available Key-Value Store
Experiences and Video: Amazon's DynamoDB - 10 years later
Case Study 4: Scalable Caching with Memcache Reading and Video: Scaling Memcache at Facebook
Reading and Video: TAO: Facebook's Distributed Data Store for the Social Graph
5. Transactional systems
Transactions and concurrency control
Crash recovery Slides: Transaction Recovery
Distributed transactions and atomic commit
6. Byzantine systems
Byzantine fault tolerance Reading: Practical Byzantine Fault Tolerance
Video: Practical Byzantine Fault Tolerance
Case Study 5: Bitcoin Reading: Bitcoin: A Peer-to-Peer Electronic Cash System
Reading: How the Bitcoin Protocol Actually works