The 8 Fallacies of Distributed Computing: Why Your Assumptions Will Break Production
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
Heartbeats: The Silent Pulse of Distributed System Availability
A silent node failure at 3 a.m. can stall distributed systems—heartbeats are how engineers turn absence into actionable signals.
Scaling Cloud and Distributed Applications: Lessons from Chase.com
JP Morgan Chase reduced latency by 71% using edge computing and multi-region architectures in cloud migrations.
Scaling a Real-Time Marketplace: Engineering Lessons from Uber's Architecture
Uber manages millions of simultaneous rider-driver interactions through specialized geospatial indexing and real-time event streaming.