Watch out: this post is 10 years old.
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.