liveBook · Manning

Distributed system

As explained in Apache Kafka in Action

A distributed system is a set of computing components that coordinate across multiple machines to provide a unified service.

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.
A group of square windows

AI-generated content may be incorrect.

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

How Apache Kafka in Action covers it

How deep it goes
Explains coordination and failure concerns, then stops short of detailed algorithms or implementation procedures.
Examples
Uses adding servers, assigning requests, detecting failures, replacing servers, and copying or splitting logs as concrete examples.
What you can do after
Evaluate distributed designs by considering coordination, failure behavior, scaling strategy, replication, and operational simplicity.
How it connects
Connects horizontal scaling with replication, partitioning, logs, reliability, and data durability.

Also explained in

Compare how 15 books explain distributed system →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Apache Kafka in Action. The section links point to the parts of the book it draws on.