The Eight Fallacies of Distributed Computing
by Peter Deutsch∞
Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.
- The network is reliable
- Latency is zero
- Bandwidth is infinite
- The network is secure
- Topology doesn't change
- There is one administrator
- Transport cost is zero
- The network is homogeneous
The true origins of this list are somewhat mythic, being largely based on the collective experience of many hackers in the early days of building distributed systems. Peter Deutsch is the one who first enumerated them as a clear way to frame thinking about why distributed systems are fundamentally different. He says the following on his home page:
I first published the "8 Fallacies of Networking" internally while working at Sun Microsystems Labs in 1991-92. (The first 4 were originally described by either Bill or Dick Lyon; I added the other 4.)
I'm pretty sure that Tom (Pugs) Lyon had a hand in the list too.
- Martin Fowler published an article in Software Development magazine called Errant Architectures∞ which is in the same vein as this list. He talks about the lure of distributing each piece of functionality on a different node in the system, without realizing what the performance impact might be. Martin's article is adapted from Chapter 7 from .
- Ted Neward actually expands this list to 10 fallacies in this presentation∞.