A distributed system coordinates computing components across multiple machines to provide a unified service. Adding servers can increase performance, reliability, and data durability, but only when the software coordinates their work. section 4.2
Distribution introduces operational questions: which server handles a request, how failures are detected, how incorrect responses are handled, and how failed servers are replaced. Reliability therefore becomes a design concern rather than an assumption. section 4.2
A practical distributed-system design emphasizes:
- Horizontal scaling by adding instances instead of only increasing resources on one server. section 4.2
- Replication for redundancy and data durability, with explicit plans for failures and replacement. section 4.2
- Simple underlying structures that are easy to copy and split; Kafka uses logs, partitions, and replication to support this approach. section 4.0 section 4.2
Figure 4.3 Scaling vertically means adding more resources to a single instance. Scaling horizontally means adding more instances to a system.
Compare vertical scaling, which adds resources to one instance, with horizontal scaling, which adds instances to a system. section 4.2
Kafka cluster growth
When servers reach capacity, adding another server can parallelize work and increase redundancy. Making that reliable requires assigning requests, detecting failures, and replacing failed servers rather than merely adding hardware. section 4.2














