Foundations of Distributed Systems
Modern applications, from AI training clusters to web-scale data analytics, run on distributed systems that span hundreds or thousands of machines. This course introduces the fundamental principles that enable such systems to provide reliability, scalability, fault tolerance, and high performance despite failures, latency, and contention. We will study the classical foundations of distributed systems (time, ordering, consensus, fault tolerance) and connect them to modern cloud-native infrastructure such as object stores, distributed databases, serverless compute, and large-scale dataflow engines. Through a combination of lectures, readings, and hands-on programming assignments, students will learn to design, reason about, and build distributed systems. By the end of the course, students will be able to analyze tradeoffs, evaluate system behavior under failure, and implement practical distributed systems.
Sources
- Course catalogue ↗2026-2027