Distributed Systems Fundamentals
A two day lecture & discussion class for engineers who need an overview of distributed systems concepts and techniques, from papers to production. We cover the basics of nodes and networks, common network protocols, clocks, availability, consistency, and a spectrum of distributed algorithms, followed by a discussion of latency scales, engineering patterns, and running services in production. We recommend ~15-30 participants per class to encourage discussion, though any size is feasible.
- A whiteboard
A two day workshop which guides students through writing a Jepsen test: from a fresh cluster to finding a consistency anomaly in an open-source database. We begin with an an introduction to the Clojure programming language, discuss the architecture of the Jepsen library, and spend the bulk of the class writing a test itself. We recommend no more than 30 participants per class. Prior programming experience and proficiency at the command line are strongly encouraged.
- Lectern with power and video hookups
- A dedicated Jepsen cluster for each participant. Jepsen can provide clusters in EC2
- A computer for each participant, with SSH (22) and HTTP (8080) access to that participant's Jepsen cluster