Nichts gespeichert, wörtlich
Wenn man sagt „wir behalten nichts“, hören die Leute meistens „wir behalten es, versprechen aber, uns zu benehmen“. Hier ist es einfacher: es gibt keinen Ort, an dem man es behalten könnte.
Der Server ist ein einziger Prozess. Der Zustand liegt in einer Handvoll Maps im Arbeitsspeicher: die Bänke, die Mitglieder, die Nachrichten, die Sperren des Tages. Keine Datenbank, kein Redis, keine Datei, kein Volume am Container.
Was das bedeutet
- Ein Neustart löscht alles. Das ist eine Eigenschaft, kein Zwischenfall.
- Ein Gespräch lässt sich nicht wiederherstellen, auch nicht auf richterliche Anordnung: es gibt keine Sicherung zu beschlagnahmen.
- Horizontal skalieren geht nicht ohne Architekturwechsel. Akzeptiert.
- Die Protokolle enthalten nur Zähler: Anzahl Bänke, Anzahl sitzender Personen. Nie eine Nachricht, nie eine Koordinate.
Die Einschränkung ist brutal, und genau das macht sie glaubwürdig. Man kann kein Versprechen brechen, das man technisch gar nicht anders halten kann.
In der Testsuite gibt es einen Test, der den echten Server startet, einen Kontrollsatz schickt, den Prozess tötet und dessen gesamte Ausgabe zurückliest, um zu prüfen, dass der Satz nirgends auftaucht. An dem Tag, an dem jemand eine geschwätzige Protokollzeile einbaut, fällt dieser Test um.