Distributed Systems
-
Software Development

Linearizability vs Serializability: The Distinction Most Engineers Conflate
Two words, one letter apart in spirit, and yet they describe different promises. Teams often use them as synonyms in…
Read More » -
Software Development

Protocol Buffers, Schema Evolution, and the Quiet Discipline IDLs Impose on Distributed Teams
Comparing how protobuf, Avro, and Cap’n Proto solve the same backward-compatibility problem Nobody deploys a distributed system all at once.…
Read More » -
Software Development

The Cost of Freedom: Why Rust’s Async Ecosystem Is Permanently Fragmented
If you have ever built a high-throughput concurrent service in Java, you likely take for granted the simplicity of Project…
Read More » -
Software Development

Rewriting Peter Deutsch’s Eight Fallacies in the Age of Kubernetes and Service Meshes
Have you ever looked at a complex microservice architecture crash under a minor traffic spike and wondered if we have…
Read More » -
Software Development

Beyond CAP: Why the 1999 Fox and Brewer Paper Stil
Have you ever looked at a system design document and winced at the rigid demand for strict consistency? We have…
Read More » -
Software Development

Consistent Hashing: The 1997 Paper Quietly Running the Internet
Dynamo, Cassandra, and every major CDN route requests through an idea from a 1997 theory paper. Almost nobody using it…
Read More » -
Software Development

Delta-State CRDTs: Solving the Bandwidth Problem Coordination-Free Replication Creates
CRDTs let replicas merge concurrent edits without coordination. The catch is what it costs to keep them talking to each…
Read More » -
Software Development

The Byzantine Generals Problem and Why Most Systems Don’t Need Byzantine Fault Tolerance
Crash faults and Byzantine faults are not the same problem, and reaching for blockchain-grade guarantees inside a trusted internal network…
Read More »


