Distributed Systems

Any significant web application quickly becomes a distributed system.

This is both good news and bad news: distributed systems can help provide fault tolerance and low latency global applications, but at the cost of strong consistency guarantees. Without a solid understanding of distributed systems principles, it is hard to achieve the benefits of distributed systems without succumbing to the hazards.

Our course focuses on practical considerations for practicing software engineers. We will cover enough theory to help students make good choices when working on or with distributed systems.

Topics covered

  • Techniques for fault tolerance
  • The CAP theorem
  • Distributed decision making and consensus
  • Relaxed and eventual consistency
  • Distributed databases and peer-to-peer storage
  • Serialization and logical time


This course assumes a strong grasp of operating systems and networking fundamentals. For students without an undergraduate computer science background, we strongly advise taking our operating systems and networking courses before undertaking distributed systems.

Schedule and fees

This course is next scheduled to run Mondays and Thursdays 6pm-9pm and Sundays 10am-1pm for three weeks starting Monday, 6 March 2017. The total price is $1,800.


San Francisco, California
© 2016 Bradfield School of Computer Science