A book that builds computer networking and distributed systems from the ground up. It begins with the simplest thing that works and adds one agreement at a time, each only when the last thing has broken.
A network is a tower of agreements.
I Ā· One Machine
Two machines, one wire, and something you want to send. The whole stack, built one broken thing at a time.
- IOne Machine
- IĀ·1The WantMeaning by agreement
- IĀ·2Where Does It Start?Framing
- IĀ·3Was It Damaged?Integrity
- IĀ·4A Third MachineIdentity
- IĀ·5The Second NetworkLocation
- IĀ·6Two Names for One MachineResolution
- IĀ·7Which Program?Program address
- IĀ·8Which Conversation?Conversation identity
- IĀ·9Waiting on Two ThingsReadiness
- IĀ·10Too Big for One FrameSegmentation
- IĀ·11Putting It Back TogetherReliable delivery
- IĀ·12Three-Way IntroductionsConnection lifecycle
- IĀ·13Is Anyone There?Liveness
- IĀ·14Slow DownFlow control
- IĀ·15One Slow ThingThe loop's contract
- IĀ·16The Network Is Not YoursCongestion control
- IĀ·17When Reliability HurtsA second transport
- IĀ·18Bytes Without MeaningApplication protocol
- IĀ·19The Shape of the MessageCompatible evolution
- IĀ·20Safe to Ask Again?Retry safety
- IĀ·21Everyone Can Read ItA secure channel
- IĀ·22The Tower So FarThe model
- IĀ·23It Works, and It's Too SlowThe fast path
- IĀ·24Capstone: Write the Protocol
II Ā· The Box You Don't Control
Mira moves away. Between you now is a box you do not own, and the box has a contract.
- IIThe Box You Don't Control
- IIĀ·1The Contract of the BoxThe contract
- IIĀ·2A Network of NetworksHop by hop
- IIĀ·2.5Interlude: Routing Is Politics
- IIĀ·3You Can Reach Out but Not Be ReachedReachability
- IIĀ·4Nobody Remembers NumbersNames
- IIĀ·5The Path Has TextureTexture
- IIĀ·5.5Sidebar: Your Phone's Contract Is Different
- IIĀ·6Light Is SlowThe round-trip budget
- IIĀ·7When the Path BreaksOne address, many machines
III Ā· Many Machines
Strangers arrive by the million. Each chapter begins with the resource that ran out.
- IIIMany Machines
- IIIĀ·1One BoxVertical scaling
- IIIĀ·2Compute and State Are Different AnimalsSeparation by shape
- IIIĀ·3More Readers Than the Disk Can ServeRead replicas
- IIIĀ·4Too Much Data for One BoxPartitioning
- IIIĀ·5Copies vs. SplitsThe partition choice
- IIIĀ·6One Front DoorThe load balancer
- IIIĀ·7The Server RemembersExternalised state
- IIIĀ·8Serving the Same Bytes a Million TimesCaching
- IIIĀ·9The Viewer Is 8,000 km AwayThe edge
- IIIĀ·10Everyone Is Online at OnceThe connection tier
- IIIĀ·11Building Everyone's FeedFan-out
- IIIĀ·12Many Front DoorsMulti-region
- IIIĀ·13The Team Ran OutServices
- IIIĀ·14Whose Data Is It?Data ownership
- IIIĀ·15The Front Door Does More Than RouteThe API gateway
- IIIĀ·16Everything Is Always BrokenFailure as normal
- IIIĀ·17Work That Can WaitAsynchronous work
- IIIĀ·18Where Did the Time Go?Observability
- IIIĀ·19Who Decides?Consensus
- IIIĀ·20The Tower, Again
- IIIĀ·21Capstone: The Design Document
Bonus Ā· Bonus
A third kind of payload, a reply that takes a minute to arrive, set beside the two you already know.