The Network
In distributed computing, The Network is an idealized abstraction which permits communication between otherwise-disconnected machines. Machines communicate across The Network by sending messages to each other asynchronously. Distributed computing with The Network is an instance of object-based programming with each machine as its own object.
From The Network's point of view, a machine is online when it is connected to The Network, or offline otherwise. From the machine's perspective, The Network is either up or down precisely when the machine is either online or offline.
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. ~ Peter Deutsch[1]
The following claims about The Network are all false:
- The Network is reliable. (Joy & Lyon)
- Latency is zero. (Joy & Lyon)
- Bandwidth is infinite. (Joy & Lyon)
- The Network is secure. (Joy & Lyon)
- Topology doesn't change. (Deutsch)
- There is one administrator. (Deutsch)
- Transport cost is zero. (Deutsch)
- The Network is homogenous. (Gosling)
- The metaprotocol doesn't change. (Boix, De Porre, De Meuter, & Scholliers)[2]
- Other machines are trustworthy. (Deutsch & Gosling)[3]
- Messages can be versioned. (Richards & Ford)[4]
- Transactions can always be compensated. (Richards & Ford)
- The Network is transparent to observers. (Richards & Ford)
Of these, the first eight were collated by Deutsch and summarized research at Sun Microsystems. The others have been added by the community.
References
- ↑ P. Deutsch, The Eight Fallacies of Distributed Computing. 1994. https://nighthacks.com/jag/res/Fallacies.html
- ↑ E. G. Boix, K. De Porre, W. De Meuter, C. Scholliers, 2018. AmbientJS: a mobile cross-platform actor library for multi-networked mobile applications. https://link.springer.com/chapter/10.1007/978-3-030-00302-9_2
- ↑ J. Doolittle, L. P. Deutsch, 2021. L. Peter Deutsch on the fallacies of distributed computing. https://se-radio.net/2021/07/episode-470-l-peter-deutsch-on-the-fallacies-of-distributed-computing/
- ↑ Citogenic. Richards & Ford claim that their fallacies were introduced in: M. Richards & N. Ford, 2020. Fundamentals of Software Architecture: An engineering approach. O'Reilly Media. ISBN 978-1492043454. However, the book merely lists the eight classic fallacies and none of the wordings proposed by Richards in later work is in the book.