Distributed systems are more difficult to engineer and are quite error-prone, as compared to single program ones. In 1994, Peter Deutsch, who worked at Sun Microsystems, wrote about common wrong assumptions that developers/architects make, which cause things to go wrong in distributed systems. In 1997, James Gosling added to this list to create what is commonly known as the eight fallacies of distributed computing. They are described here.
Distributed system quirks
The network is reliable
Things always go wrong with individual components of the networks—whether it be power failures or cable cuts. Networks are typically architected at the hardware level using a set of redundant links and software is responsible for providing...