The workings of large distributed systems fascinate me. At the same time, working at Twitter has taught me hard lessons about the variety of exciting failure scenarios of a scaled system. “holy shit, everything’s on fire” moments are my personal favourites.
So, I’ve been reading up.
Here’s some stuff I’ve read and some I haven’t. Enjoy.
- Designing Data-Intensive Applications — Book — My go-to for distributed systems knowledge by Martin Kleppmann
- What We Talk About When We Talk About Distributed Systems — Article/Video — Fantastic article (and talk) with grounding in all the terminology.
- Aphyr on Distributed Systems — Blog — Great blog. Kyle works on Jepsen, and I learn something from every one of his posts.
- Dist-sys Class Notes — Article — More Aphyr, this time with notes from his distributed systems class. Great stuff, learned a tonne.
- Notes on Distributed Systems for Young Bloods — Article — Jeff Hodges on how to think about distributed systems.
- Time, Clocks, and the Ordering of Events in a Distributed System — PDF — One of the dist-sys papers. Have dipped in and out, need to read it properly.
- Readings in Database Systems — Book — aka. the “Red Book”. Need to read, though it’s more about data that dist-sys.
- Clients are Jerks — Article — Catie McCaffrey on misbehaving clients. Good stuff.
- Engineering for the Long Game — Video — Really great talk from Velocity in Santa Clara 2015.
- The Language of the System — Video — One of my all time favourite talks, by Rich Hickey. Not so much about dist-sys, but mind-expanding on the differences between systems and programs.
- There is No Now — Article — Problems with simultaneity in distributed systems. Eye-opening.
- Turning the database inside out — Video — Great talk from Martin Kleppmann (author of the book at the top of this list) that really changed my understanding of what a database could be
There’s way more that I’ve forgotten about, so I’ll come back and update this when I remember.
There’s a good amount of writing on this topic, and it’s becoming more and more accessible (less academic, more practical), but I haven’t seen much written from the client-side perspective so I might try to contribute in some small way in that space. Poke me on Twitter if you want that article.