core concepts
the forces that drive every systems design decision.
every systems design decision is a tradeoff. you want the system to handle more load, but adding nodes introduces consistency problems. you want strong guarantees, but strong guarantees cost latency. you want it always available, but availability and consistency pull in opposite directions when the network splits.
this chapter covers the vocabulary for those tradeoffs. not as definitions to memorize, but as forces you actually reason about when deciding what to give up.
what this chapter covers
scalability is about how systems handle growth, and why "just add more servers" breaks down as soon as any state is involved.
reliability is about continuing to work correctly when things go wrong. hardware fails, software has bugs, operators make mistakes. a reliable system expects all of this.
availability is about the system being reachable when you need it. it is related to reliability but not the same thing, a system can be reliable and unavailable, or available and unreliable.
cap theorem is the constraint every distributed system lives under: when the network partitions, consistency and availability cannot both hold. you never "pick two". partition tolerance is not optional, and the only real choice is which of the other two you keep when the split happens.
performance vs correctness is the tradeoff underneath almost every other decision. stronger guarantees cost round trips; faster systems get faster by skipping them. the chapter puts a measured number on that bill rather than leaving it abstract.