Learning path
The Limits of Computing
Five theorems that say "you cannot do this", in order of how much they hurt. Between them they explain why distributed systems are hard in a way that no amount of better engineering will fix.
The Halting Problem
The first and cleanest impossibility. One machine, one question, and a proof that no program can answer it in general.
No program can look at any other program and always correctly say whether it will finish running or loop forever. Turing proved it in 1936 by building a program that does the opposite of whatever it is told about itself.
AdvancedImpossibility result20 min
The Two Generals' Problem
Add a second machine and an unreliable wire, and agreement itself becomes impossible. Two friends trying to fix a meeting time by passing notes that might get lost — that is the whole result.
Two allies must agree on a time to attack, but every message between them might be lost. No matter how many confirmations they exchange, the last messenger is never confirmed — and agreement is provably unreachable.
IntermediateImpossibility result18 min
The Byzantine Generals Problem
Now the messages arrive but some participants lie. The answer is a hard number: you need more than three times as many honest parties as dishonest ones.
Loyal generals must agree on a plan while traitors among them send different stories to different people. With unsigned messages, agreement is impossible unless more than two-thirds are loyal — and signatures change the bound entirely.
AdvancedImpossibility result22 min
The FLP Impossibility Result
The most quietly devastating of the five. Honest participants, reliable messages, and just one that might crash — and deterministic consensus is still impossible.
In a network with no timing guarantees, no deterministic protocol can promise that a group of computers will ever agree on anything — if even one of them might crash. Not slow, not unlikely: impossible.
ExpertImpossibility result23 min
The CAP Theorem
Where all of this reaches production. And where it is most often misquoted, so this entry spends as much time on what CAP does not say as on what it does.
Almost everyone states it as "pick two of consistency, availability and partition tolerance". That is wrong. Partitions are not a choice, and the real trade-off only exists while the network is broken.
AdvancedImpossibility result23 min
Goodhart's Law
An unexpected ending, and the point of it. Having learned that some things are provably impossible, finish with something worse: a system that achieves exactly the target you set and destroys what you wanted anyway.
Pick a number that stands in for something you care about, then reward people for moving that number. They will move it. The thing you actually cared about is now free to drift away, and your number will not tell you that it has.
IntermediateCounterintuitive result14 min
That is the path. Try another, orlet the site pick something for you.