This outline and pattern language for an overview class on distributed systems fundamentals. github
The course aims to introduce software engineers to the practical basics of distributed systems, through lecture and discussion. Participants will gain an intuitive understanding of key distributed systems terms, an overview of the algorithmic landscape, and explore production concerns.
- What makes a thing distributed?
- Nodes and networks
- When networks go wrong
- Low level protocols
- Clocks
- Review
- Availability
- Consistency
- Tradeoffs
- Avoid Consensus Wherever Possible
- Fine, We Need Consensus, What Now?
- Review
- Characteristic latencies
- A Pattern Language
- Production Concerns
- Review
Aside: I wrote this outline by mapping a one-line function over all of the page's h2 and then globally replacing anything that wasn't wiki markup.
function x(a,b) { console.log([ $(b).find('a').attr('href'), $(b).text() ])}