The Eight Fallacies of Distributed Computing
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
For more details, read the article by Arnon Rotem-Gal-Oz.
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.