Knowledge Guide
HomeSystem DesignMental Models & Systems Thinking

The 8 Fallacies of Distributed Computing

The list every distributed-systems engineer carries in their head

In 1994 (extended by James Gosling), Peter Deutsch named the false assumptions engineers keep making about networks. Decades later, essentially every distributed-systems outage still traces back to one of them. This isn't trivia — it's a design checklist: for any remote call, ask "which fallacy am I assuming?"

A remote call drawn twice: the assumed version is an instant, reliable, free, secure arrow; the real version has latency, dropped packets needing retries, and possible partition
A remote call drawn twice: the assumed version is an instant, reliable, free, secure arrow; the real version has latency, dropped packets needing retries, and possible partition

The 8 fallacies — reality and the design defense

Fallacy ("we assume…")RealityDesign defense
1. The network is reliableconnections fail, packets drop, services are downtimeouts, retries with jitter + idempotency, circuit breakers
2. Latency is zeroa remote call is ~0.5ms (same DC) to ~150ms (cross-continent)minimize round trips, batch, cache, colocate; never loop over remote calls
3. Bandwidth is infinitelinks saturate; big payloads queuecompress, paginate, stream, trim payloads; watch fan-out
4. The network is securethe wire is hostile; insiders tooTLS/mTLS, authn/authz, zero-trust, encrypt at rest
5. Topology doesn't changenodes come and go; IPs change; autoscalingservice discovery, health checks, no hardcoded hosts
6. There is one administratormany teams/orgs own pieces; versions driftversioned, backward-compatible APIs; defensive parsing
7. Transport cost is zeroserialization burns CPU; egress bandwidth costs moneyefficient formats (protobuf), batch, mind cloud egress $
8. The network is homogeneousmixed hardware, protocols, library versionsstandard protocols; don't assume peer capabilities

How to actually use it

Run it as a pre-mortem lens on any design with a network hop:

Notice how the fallacies generate the rest of the systems curriculum: #1 → retries/circuit-breaker/idempotency, #2 → caching/CDN/estimation, #4 → TLS/mTLS, #5 → service discovery. They are the why behind the patterns.

Takeaways


Re-authored for this guide; mental-model diagram hand-authored as SVG. The list is Peter Deutsch & James Gosling's "Fallacies of Distributed Computing." See also: Capacity Estimation (latency numbers), Replication Lag & Failover, Rate Limiting, and the microservices resilience patterns (retry, circuit breaker, bulkhead).

🤖 Don't fully get this? Learn it with Claude

Stuck on The 8 Fallacies of Distributed Computing? Open Claude, copy a block below, and it'll teach you this exact concept — visually and interactively.

🎨 Explain it visually

Build the mental picture, not memorization.

I just read a lesson on **The 8 Fallacies of Distributed Computing** (System Design) and want to truly understand it. Explain The 8 Fallacies of Distributed Computing from first principles using ONE vivid real-world analogy and a visual mental model — draw it as ASCII art or a clear step-by-step diagram — with a concrete example using real numbers. Then ask me one question to check I got the mental picture, and wait for my reply. If you're unsure or a claim isn't standard, say so and reason from first principles instead of guessing.
🤔 Walk me through it (interactive)

Socratic — adapts to where you're stuck.

Teach me **The 8 Fallacies of Distributed Computing** interactively. Ask me ONE guiding question at a time, wait for my answer, and adapt to my confusion — build the idea with me step by step instead of explaining it all at once. If you're unsure or a claim isn't standard, say so and reason from first principles instead of guessing.
🧪 Quiz me & fix my gaps

Active recall exposes what you missed.

Quiz me on **The 8 Fallacies of Distributed Computing** with 5 questions, easy to tricky, ONE at a time. Tell me if each answer is right; at the end, explain clearly what I got wrong and why. If you're unsure or a claim isn't standard, say so and reason from first principles instead of guessing.
🧠 Make it stick

Intuition + hook + flashcards for long-term memory.

Help me remember **The 8 Fallacies of Distributed Computing** for the long term: give the one-sentence intuition, a memorable hook/mnemonic, a tiny worked example, and 3 active-recall flashcards (Q -> A). If you're unsure or a claim isn't standard, say so and reason from first principles instead of guessing.

📝 My notes