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.
I am not a sophisticated software engineer, and I rarely create distributed applications (who am I kidding? I never do!). However, I know exactly what all these fallacies mean. I even know what #6 is about (which Andy says mystifies him). It means that you can never find the right person to fix your problem if the application is spread all over the internet.
This leads me to wonder what are the fallacies of being a Venture Cyclist ... hmm, a topic for a subsequent post.