Thoughts while sitting on a plane (fundamentals) ..
Image generated by AI, article generated via greymatter

Thoughts while sitting on a plane (fundamentals) ..

Revisiting the timeless relevance of the ‘8 Fallacies of Distributed Computing’

The 2025 JavaOne conference kicked off with a keynote visit by Scott McNealy, co-founder and former CEO of Sun Microsystems, the company that brought us Java. McNealy’s keynote was a informative look back at the history of Java and its impact on the world of computing. However, while watching the keynote I realized , it should also be taken as a call to action, urging todays developers to remember (or learn) the fundamental principles of distributed computing that have been guiding the industry for decades. One set of principles that Sun published that is still crucially relevant today is ‘8 fallacies of distributed computing’. The move to the cloud requires an acknowledgement of these ‘untruths’ which then became the basis for modern application design and the evolution into cloud-native design.

I recently had the opportunity to visit with several large customers who are in the multi-year process of converting their legacy software stacks to cloud-based applications. What struck me most about these conversations was the realization that the biggest hurdle they face is not the technology itself, but rather the need to still change their existing employee mindset to adapt to the realities of distributed computing. The journey to cloud-native is not just about rewriting code or adopting new tools. It’s about fundamentally changing the way we think about software development, deployment, and management. Many have heard me say ‘Tech is easy, Humans are hard’ and this journey is an example of that.

As I observed firsthand, many organizations are still struggling to make this transition, and it’s not just a matter of technical expertise. It’s about recognizing that distributed systems are inherently complex and unpredictable, and that we need to design and build them with that in mind. It’s about understanding that the network is not always reliable, that latency is not zero, and that security is not a given. By acknowledging these realities, we can build more robust, scalable, and secure systems that meet the needs of today’s fast-paced and ever-changing world.

Quick reminder of the 8 Fallacies of Distributed Computing

  1. The network is reliable: This assumption ignores the fact that networks can be prone to failures, packet loss, and disconnections. Designing a system that assumes a reliable network can lead to unexpected behavior and errors when the network fails.

  2. Latency is zero: Assuming that data can be transmitted instantly across a network is unrealistic. Latency can have a significant impact on system performance, and ignoring it can lead to slow and unresponsive applications.

  3. Bandwidth is infinite: While network bandwidth has increased significantly over the years, it’s still a limited resource. Ignoring bandwidth constraints can lead to network congestion and poor system performance.

  4. The network is secure: This assumption is particularly problematic, as security is a critical concern in distributed systems. Assuming that the network is secure can lead to vulnerabilities and data breaches.

  5. Topology doesn’t change: Network topology can change frequently, with devices and nodes being added or removed regularly. Designing a system that assumes a static topology can lead to errors and unexpected behavior.

  6. There is one administrator: In reality, distributed systems often have multiple administrators, each with their own set of permissions and access controls. Ignoring this complexity can lead to security vulnerabilities and management headaches.

  7. Transport cost is zero: Assuming that data can be transmitted without any cost or overhead is unrealistic. Transport costs, such as latency and bandwidth usage, can have a significant impact on system performance.

  8. The network is homogeneous: This assumption ignores the fact that networks are often heterogeneous, with different devices, operating systems, and protocols in use. Designing a system that assumes a homogeneous network can lead to compatibility issues and errors.

Why these ‘fallacies’ are more relevant today

Despite the advances in technology and distributed computing, the 8 fallacies remain as relevant today as they were when they were first published. In fact, the increasing complexity and scale of modern distributed systems make these principles even more important to consider. In todays cloud scale computing environments there will always be bumps in the road and issues that arise. Addressing these issues in both your Application Architecture but also your Infrastructure Architecture leads to a more resilient solution that ultimately will better serve your customers and your business.

The ‘8 fallacies’ are a timeless reminder of the importance of considering the complexities and challenges of distributed systems. As we move forward in the world of cloud-native applications, it’s essential to remember these principles and to change our mindset to adapt to the realities of distributed computing.

So, what can you do to ensure that your organization is building robust, scalable, and secure distributed systems? Here are a few steps you can take:

  • Learn the basics, quality architectures require understanding how things REALLY work, not just how to copy/paste and use frameworks

  • Educate yourself and your team on the 8 fallacies of distributed computing and how they apply to your specific use case. (everyone should be able to answer ‘what happens when…)

  • Design and build your systems with the assumption that the network is unreliable, latency is non-zero, and security is a top priority.

  • Test and validate your systems under realistic conditions to ensure that they can handle the complexities and uncertainties of distributed computing. And then BREAK something unexpected.

  • Continuously monitor and evaluate your systems to identify areas for improvement and optimize performance. Architecture and design is a continuous cycle.

Tess Scanlon-Phillips

Owner and Landscape Designer at Gardening By Tess. Inc. Executive Director for The Cash Scanlon Phillips Foundation Yoga Teacher CorePower Yoga

3mo

Well said Joe.

Like
Reply

To view or add a comment, sign in

Insights from the community

Explore topics