CSE 40771 - Distributed Systems
Prof Douglas Thain - Spring 2026 - 11:30-12:20 MWF
Catalog
HashTableServer
HashTableClient
HTTP GET
lookup(key)
value
UDP update
UDP update
UDP update
JSON
A distributed system consists of multiple machines that work together on a common problem. Distributed systems appear everywhere: mobile computing, edge computing, the internet of things, aerospace systems, and more. Students will learn the fundamental principles of distributed systems, study examples of current distributed systems, and build their own distributed systems from scratch. This will be a fun and challenging class for students who like to build working systems. The skills that you learn here will apply directly to advanced systems used in industry.
web
web
web
LB
db
db
Course Materials
What is a distributed system?
Prof. Thain: Any system of multiple independent computers connected by an (unreliable) network, working together on a common problem.
Prof. Lamport: When you can't get your work done because a computer you never heard of has crashed… then you know you have a distributed system. (Wikipedia: Leslie Lamport)
Why would you want a distributed system?
You might choose to design a distributed system in order to get:
You might have to design a distributed system if:
The World Wide Web is a Distributed System
Distributed Sensor Networks
6
Distributed Cloud Services
Distributed High Performance Computing
Scientific Workflow Systems
Workflow Manager
Task / Data Scheduler
Computing Facility
Express overall workflow structure, components, constraints, and goals.
Assign ready tasks and data objects to resources in the cluster, subject to runtime constraints.
Execute tasks on computational resources, store and move data between nodes.
Bitcoin and other Cryptocurrencies
The Chord Distributed Hash Table
The Ceph Distributed Filesystem
Design Considerations of Distributed Sys.
Physical Scalability - scope of deployment
Numerical Scalability - # of nodes, people, files, transactions…
Transparency - can the user tell it is distributed?
Cooperation - how well do the people get along?
Reliability - how well can it handle network or node failures?
Security/Privacy - how well is each node protected from another?
Eight Fallacies of Distributed Computing
Observations by Peter Deutsch (Sun Microsystems) of mistaken assumptions often made in the design phase of a system:
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
First Week Steps