You think distributed systems is about trying to accomplish complex tasks, and then you read the literature and it's like "consider the problem of incrementing a counter", and it turns out that distributed systems is about how the simplest tasks become mind-bogglingly complex.
Consistency models in distributed systems are literally about answering the question: "What flavors of weirdness are you cool with? If this bizarre thing that you never imagined was even possible might happen sometimes, would your users be ok with that?"
Distributed computing is like multithreaded computing, with more weirdness! There's an old saw about how a correct double-ended queue implementation is an undergraduate assignment, and a correct *multithreaded* double-ended queue implementation is a research publication.
In a distributed system, you don't get to ask the question "is the system in state X" (which is what I naively asked @FakeRyanGosling). Instead, it's in all sorts of intermediate states that you don't want to have to think about. Too bad!
I once bought a distributed systems textbook, and the entire book is essentially about how to get multiple computers to agree on the value of a single variable.
You can follow @norootcause.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: