The distributed systems fallacies are the false assumptions developers make about these systems. There are 8 statements describing these fallacies:
Let's jump into these fallacies:
Networks are unpredictable. There are plenty of reasons like network failure, data center failure, DDoS attacks, etc...
In local area network apps, latency may be close to zero. But in a wide area network, data has to travel and span large geographical areas which cause latency deterioration.
There is no infinite throughput, in other words, the capacity of networks to transfer data is not infinite.
A network can be compromised in many ways like DDoS attacks, vulnerabilities, etc...
Network topology refers to the manner in which the nodes are arranged and relate to each other. Network topology changes all the time accidentally due to issues like a node crash or deliberately by adding a new node or removing an old one.
In a single-machine project, there might be only one administrator. But in a distributed system, there might be many administrators, one for every node.
The bigger the network, the bigger the financial cost. The financial cost comes from servers, load balancers, proxies, securing the network, time and effort in designing the system, considering the high availability and the fault tolerance, etc...
Most distributed systems are heterogeneous. They integrate with many types of devices running on different operating systems. So you have to ensure that all these components can talk to each other, despite their differences.
These are the 8 fallacies of distributed systems in a nutshell. I hope you have found this useful. Thank you for reading.