I gave a talk at Iowa Code Camp this weekend on distributed systems. It was primarily an introduction to them, so it explored some core concepts at a high level. We looked at why distributed systems are difficult to build (right), the CAP theorem, consensus, scaling shared data and CRDTs.
There was some interest in making the slides available online. I’m not sure how useful they are without narration, but here they are anyway for posterity.