Introduction
The distributed systems fallacies are the false assumptions developers make about these systems. There are 8 statements describing these fallacies:
The 8 Fallacies in a nutshell
Let's jump into these fallacies:
1. The network is reliable
Networks are unpredictable. There are plenty of reasons like network failure, data center failure, DDoS attacks, etc...
2. Latency is zero
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.
3. Bandwidth is infinite
There is no infinite throughput, in other words, the capacity of networks to transfer data is not infinite.
4. The network is secure
A network can be compromised in many ways like DDoS attacks, vulnerabilities, etc...
5. Topology doesn't change
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.
6. There is one administrator
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.
7. Transport cost is zero
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...
8. The network is homogeneous
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.
Conclusion
These are the 8 fallacies of distributed systems in a nutshell. I hope you have found this useful. Thank you for reading.