====== Fallacies of Distributed Computing ====== ===== Variants and Alternative Names ===== ===== Context ===== /* fill in contexts here: */ * [[contexts:Architecture]] ===== Principle Statement ===== > 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. > 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((Peter Deutsch: //[[https://blogs.oracle.com/jag/resource/Fallacies.html|The Eight Fallacies of Distributed Computing]]//)) So a design is bad if one these aspects is neglected. ===== Description ===== ===== Rationale ===== ===== Strategies ===== ===== Caveats ===== See section [[#contrary principles]]. ===== Origin ===== Peter Deutsch: //[[https://blogs.oracle.com/jag/resource/Fallacies.html|The Eight Fallacies of Distributed Computing]]// ===== Evidence ===== /* Comment out what is not applicable and explain the rest: */ /* * [[wiki:Proposed]]*/ /* * [[wiki:Examined]]*/ * [[wiki:Accepted]] /* * [[wiki:Questioned]]*/ ===== Relations to Other Principles ===== ==== Generalizations ==== * [[Law of Leaky Abstractions]]: Essentially the eight fallacies are abstraction leaks. ==== Specializations ==== ==== Contrary Principles ==== ==== Complementary Principles ==== ==== Principle Collections ==== ===== Examples ===== ===== Description Status ===== /* Choose one of the following and comment out the rest: */ [[wiki:Stub]] /*[[wiki:Incomplete]]*/ /*[[wiki:Complete]]*/ ===== Further Reading ===== * [[wp>Fallacies of Distributed Computing]] * [[wiki>EightFallaciesOfDistributedComputing]] * Peter Deutsch: //[[https://blogs.oracle.com/jag/resource/Fallacies.html|The Eight Fallacies of Distributed Computing]]// * Arnon Rotem-Gal-Oz: //[[http://www.rgoarchitects.com/Files/fallacies.pdf|Fallacies of Distributed Computing Explained]]// ===== Discussion ===== Discuss this wiki article and the principle on the corresponding [[talk:principles:Fallacies Of Distributed Computing|talk page]].