Skip to main content

On This Page

The 8 Fallacies of Distributed Computing: Why Your Assumptions Will Break Production

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

Fallacies of distributed computing

Sebastian Schürmann’s dev.to post, ‘Fallacies of distributed computing’, outlines 8 foundational misconceptions about distributed systems. These fallacies were codified by L. Peter Deutsch and others at Sun Microsystems in the 1990s.

Why This Matters

Modern software is inherently distributed, yet these 8 fallacies—codified by Deutsch at Sun—expose a dangerous gap between ideal models and operational reality. The total cost of ignoring these fallacies includes multi-hour outages, cascading failures, and unbounded cloud bills. For example, assuming zero latency or infinite bandwidth can cripple latency-sensitive platforms like trading systems or video streaming.

Key Insights

  • The network is not reliable; failures like the 8-hour Google App Engine outage of 2012 demonstrate cascading effects when network reliability is assumed.
  • Latency is not zero; concepts like ‘Sagas over ACID’ for e-commerce transaction orchestration acknowledge that network round trips incur real, non-zero delay.
  • Bandwidth is not infinite; tools like content delivery networks (CDNs) used by Netflix and YouTube are designed specifically to cope with finite bandwidth.
  • Topology changes frequently; microservice registries (e.g., Consul, Eureka by Netflix) are built precisely because service locations change over time.

Practical Applications

  • Use case: Cloud-native applications on Kubernetes handle topology changes via service discovery. Pitfall: Hard-coding IP addresses leads to outages when pods are rescheduled.
  • Use case: Backend services using synchronous HTTP calls for inter-service communication. Pitfall: Assuming the network is reliable causes cascading failures; use circuit breakers (e.g., Hystrix) instead.
  • Use case: Data-intensive pipelines streaming across data centers. Pitfall: Assuming infinite bandwidth can cause backpressure drops; implement flow control with backpressure strategies (e.g., Apache Kafka partitions).

References:

Continue reading

Next article

GCD DispatchWorkItem Cancellation: Cooperative Cancellation in Swift

Related Content