|
| 1 | += Fallacies of Distributed Computing |
| 2 | +:categories: software-architecture |
| 3 | +:roles: software-architect, software-developer, devops-engineer |
| 4 | +:related: cap-theorem, event-driven-architecture, hexagonal-architecture |
| 5 | +:proponents: L. Peter Deutsch, James Gosling |
| 6 | +:tags: distributed-systems, networking, reliability, latency, fallacies, resilience |
| 7 | +:tier: 3 |
| 8 | + |
| 9 | +[%collapsible] |
| 10 | +==== |
| 11 | +Vollständiger Name:: Die acht Trugschlüsse des verteilten Rechnens |
| 12 | + |
| 13 | +Auch bekannt als:: Deutsch's Fallacies, Fallacies of Networked Computing |
| 14 | + |
| 15 | +[discrete] |
| 16 | +== *Kernkonzepte*: |
| 17 | + |
| 18 | +Die acht falschen Annahmen:: (1) Das Netzwerk ist zuverlässig. (2) Latenz ist null. (3) Bandbreite ist unendlich. (4) Das Netzwerk ist sicher. (5) Die Topologie ändert sich nicht. (6) Es gibt einen Administrator. (7) Transportkosten sind null. (8) Das Netzwerk ist homogen |
| 19 | + |
| 20 | +Warum es zählt:: Jede Annahme ist in der lokalen Entwicklung bequem und in Produktion falsch; darauf aufgebaute Systeme scheitern unter realen Netzbedingungen |
| 21 | + |
| 22 | +Als Audit-Checkliste:: Die Liste nutzen, um einen verteilten Entwurf zu hinterfragen — pro Fallacy fragen, was passiert, wenn das reale Gegenteil zutrifft (Retries, Timeouts, Backpressure, Verschlüsselung, Service Discovery, Kapazitätsgrenzen, Protokollverhandlung) |
| 23 | + |
| 24 | +Mitigations-Hinweise:: Zuverlässigkeit → Retries/Idempotenz; Latenz → Batching/Lokalität; Sicherheit → Zero-Trust; Topologie → Service Discovery; Homogenität → explizite Contracts und Versionierung |
| 25 | + |
| 26 | +Key Proponents:: L. Peter Deutsch (die ersten sieben, Sun Microsystems, ca. 1994); James Gosling ergänzte den achten („das Netzwerk ist homogen"); frühe Punkte werden Bill Joy und Tom Lyon zugeschrieben |
| 27 | + |
| 28 | +[discrete] |
| 29 | +== *Verwendung*: |
| 30 | + |
| 31 | +* Review oder Härtung eines verteilten/Microservice-Entwurfs |
| 32 | +* Formulieren von Resilienz-Anforderungen (Timeouts, Retries, Circuit Breaker) |
| 33 | +* Onboarding von Entwicklern vom Monolithen zum verteilten Denken |
| 34 | +* Post-Incident-Analyse netzbedingter Ausfälle |
| 35 | + |
| 36 | +[discrete] |
| 37 | +== *Nicht verwenden*: |
| 38 | + |
| 39 | +* Für rein In-Process-Logik auf einer Maschine ohne Netzaufrufe |
| 40 | +* Als Ersatz dafür, das Verhalten des echten Netzes zu messen |
| 41 | + |
| 42 | +[discrete] |
| 43 | +== *Verwandte Anker*: |
| 44 | + |
| 45 | +* <<cap-theorem,CAP Theorem>> — die Consistency-/Availability-Folge von Partitionen |
| 46 | +* <<event-driven-architecture,Event-Driven Architecture>> — Async-Muster, die unzuverlässige Netze annehmen |
| 47 | +* <<hexagonal-architecture,Hexagonal Architecture>> — Netz-Adapter hinter Ports isolieren |
| 48 | +==== |
0 commit comments