System Design
Chapter 1. Foundations What system design means Requirements and constraints Functional requirements Nonfunctional requirements Latency, throughput, and availability Capacity estimation Back of the envelope math Traffic patterns Read heavy vs write heavy systems State, storage, and computation APIs and contracts Data models Consistency basics Durability basics Fault tolerance basics Scalability basics Observability basics Security basics Cost as a design constraint Simplicity as a design constraint Tradeoffs Failure modes Design review...