47

Distributed Systems

Fallacies of Distributed Computing

The hidden assumptions of networked code.

The article

If

Newcomers to distributed systems silently assume the network is reliable, latency is zero, bandwidth is infinite, the network is secure, topology is stable, there is one administrator, transport cost is zero, and the network is homogeneous. Every one of these eight assumptions fails in production.

Then

Before shipping any cross-process call, name which of the eight assumptions you are relying on and add an explicit timeout, retry, and failure path for each.

Unless

Design for Failurewithout gold-plating against impossible modes

Source

L. Peter Deutsch (fallacies 5–7, 1994) and James Gosling (the 8th, ~1997), building on earlier work at Sun Microsystems.

Go to the source

See also