ZooKeeper for the Skeptical Architect
An honest tour of what ZooKeeper is good for, what it isn't, and the operational pain of running a consensus system in anger.

The World Is Asynchronous
Vogels makes the case that loose coupling and event-driven architecture aren't a style choice — they're how the world actually works.

When To Use Microservices (And When Not To!)
Newman and Fowler talk through the cases where microservices earn their keep — and the much larger set where they don't.

Distributed Systems Are a UX Problem
Treat reframes consistency, latency, and partial failure as user-facing concerns — and shows what good distributed-system UX looks like.

Building a Distributed Message Log from Scratch
What you learn when you implement a Kafka-style log yourself: replication, leader election, fsync semantics, and the limits of 'just use a queue.'

The Language of the System
Hickey on the fact that the language inside your process is rarely the language between your processes — and what that should imply for system design.

Distributed Sagas: A Protocol for Coordinating Microservices
A pragmatic protocol for keeping a multi-service transaction consistent without two-phase commit, built on a fault-tolerant log of compensating actions.