// ActionNote
Sunk Cost hat keine Stimme
Wie ich in einem strukturierten Architektur-Vergleich vier Jahre BeastNet gegen DaWN gestellt habe — und warum der Merge in drei Wörtern mehr Überwindung kostet als die Implementierung.
Veröffentlicht: 30. April 2026 · Holger Theymann
Es war Donnerstagabend, halb elf, und ich saß vor einer Markdown-Tabelle, in der mein eigener Code in Spalte A stand und die Lösung eines anderen Teams in Spalte B. Spalte B war an sieben von fünfzehn Stellen besser. An einer Stelle deutlich besser. Das war die Stelle, an der ich vier Jahre verbracht hatte.
BeastNet ist mein Baby. Föderiert, dezentral, libp2p, IPFS, ein Plugin-System über Cargo-Features, das ich verteidigt habe, bis ich blau im Gesicht war. Ich hatte recht behalten. Field-Level-Splitting (pro Content-Feld ein eigener IPFS-Blob, Faktor 20 weniger Bandbreite gegenüber Whole-Document-Encryption) war meine Idee, im Zug nach Hamburg, auf der Rückseite eines Bewirtungsbelegs. StorageNode-Blindheit ebenso. Proxy Re-Encryption für N:M-Zugriff auch. Das ist solides System Design, und ich war zu Recht stolz darauf.
Nur das Video-Problem nicht. Das Video-Problem war ein offenes Geschwür. Vier gestapelte Sicherheitsschichten, jede einzeln verteidigbar, zusammen ein Overhead von rund 450 Prozent. Ein Zwölf-Megabyte-Clip wurde zu einer Sechzig-Megabyte-Wolke, und ich hatte mir angewöhnt, in Demos einfach kürzere Clips zu nehmen. // Klassischer Architekt-Move: das Problem nicht lösen, sondern das Demo verkleinern.
Dann tauchte DaWN auf. Iroh statt libp2p, QUIC, Offline-First, KERI-Identität, bitemporale Wissensrepräsentation. Und mittendrin: DOT Cell-Framing. Jeder Traffic, egal welcher Inhalt, in 1024-Byte-Zellen zerlegt. Traffic-Obfuskation als Nebenwirkung, ja, aber das eigentlich Interessante war: das Verfahren räumt mit Overhead-Stacking auf, weil die Zellen unterhalb der Verschlüsselungsschicht greifen. Mein 450-Prozent-Problem hätte BeastNet von alleine nie gelöst. Die DaWN-Leute hatten es gelöst, ohne es lösen zu wollen. Sie hatten einen Side-Effect, der mein Hauptproblem killt.
Wir setzten uns an einen Tisch und gingen Kapitel für Kapitel durch. Strukturierter Vergleich, kein Pitch, keine Politik. Ich hatte die Liste vorbereitet, weil ich darauf bestanden hatte, dass wir das öffentlich machen, und nicht in irgendeinem privaten Slack vergraben. // Wer freiwillig Tribunal spielt, hat weniger Angst vor dem Urteil.
Das Ergebnis war unbequem auf eine erwachsene Art. BeastNet bleibt überlegen bei Zugriffskontrolle und Bandbreitenökonomie; DaWN hat das stärkere Framing, die ausgefeiltere Identitätsschicht, das tiefere Wissensmodell. Die einzig ehrliche Antwort war keine Migration in eine Richtung, sondern ein Tausch: BeastNet übernimmt DOT Cells, DaWN übernimmt Field-Level-Splitting und StorageNode-Blindheit. Beide Systeme werden besser, beide Teams sehen ein bisschen ungekämmter aus als vorher, und niemand muss vier Jahre Arbeit wegwerfen. Was aber jemand muss, ist sagen: An dieser Stelle hat das andere Team etwas gebaut, das besser ist als unseres.
Hier war die Versuchung. Nicht die Versuchung, DOT Cells abzulehnen, weil sie schlecht wären — die waren ja gut. Sondern die Versuchung, sie abzulehnen, weil ich etwas anderes gebaut hatte. Vier Jahre. Eine Architektur, die ich auf Konferenzen erklärt hatte. Ein Architecture Brief, den ich Investoren in die Hand gedrückt hatte. All das wäre ein Argument gewesen. Ein gutes sogar, im Sinne von: rhetorisch wirksam, schwer zu widerlegen, weil keine einzige Aussage nachweislich falsch ist. Es ist nur das falsche Argument.
Sunk Cost ist ein lautes Argument. Es klingt nach Verantwortung, nach Konsistenz, nach Disziplin. Die Vier-Jahre-Stimme im Kopf sagt nicht "wirf nichts weg", sie sagt "du wirst dich lächerlich machen". Sie tarnt sich als Vernunft. Wenn man ihr zuhört, baut man am Ende zwei Systeme: das System selbst und die Rechtfertigung dafür, warum es noch das richtige ist. Die Rechtfertigung wird mit der Zeit größer als das System. Irgendwann pflegt man nur noch sie. Das nennt sich dann Legacy Code, aber die Wurzel war kein Code, sondern eine Entscheidung in einem Meetingraum, in dem jemand Sunk Cost eine Stimme gegeben hat.
Wir haben den Tausch dokumentiert. // Im Commit steht "adopt DOT cells from DaWN" — drei Wörter, die mich mehr Überwindung gekostet haben als die ganze Implementierung.
Vier Jahre haben in dem Meeting nicht gesprochen. Ich hatte ihnen das Mikrofon abgestellt, bevor ich den Raum betreten habe.
// Häufige Fragen
Ist es nicht vernünftig, auf bestehenden Investitionen aufzubauen?
Wie macht man einen fairen Vergleich, wenn man selbst einer der Architekten ist?
Was ist Field-Level-Splitting und warum ist es effizienter?
// Quellen
- Arkes, H. & Blumer, C.: The Psychology of Sunk Cost . Organizational Behavior and Human Decision Processes [study]
- The Rust Project: Cargo Features — The Cargo Book [documentation]
- MIT CSAIL / IEEE: Traffic Analysis Attacks and Defenses in Low-Latency Anonymous Communication [study]
- Staw, B.M.: Knee-Deep in the Big Muddy: A Study of Escalating Commitment to a Chosen Course of Action . Organizational Behavior and Human Performance, 16(1) (1976) [study]
- Keil, M., Mann, J. & Rai, A.: Why Software Projects Escalate: An Empirical Analysis and Test of Four Theoretical Models . MIS Quarterly, 24(4) (2000) [study]