Before you can appreciate why Kafka is built the way it is, it helps to know the eight assumptions that engineers new to distributed systems almost always make — and are always wrong to make. The list was compiled by Peter Deutsch at Sun Microsystems (with an eighth fallacy later added by James Gosling). Kafka's replication, ISR, acks, batching, and security model all exist because its designers assumed the opposite of every item on this list.
Key configuration
# The 8 fallacies of distributed computing
1. The network is reliable
2. Latency is zero
3. Bandwidth is infinite
4. The network is secure
5. Topology doesn't change
6. There is one administrator
7. Transport cost is zero
8. The network is homogeneous