
v0.32.0
21. Juni 2026“Vollbesetzt: Sharding, PgBouncer & Dispatcher-Ansicht”
Commits
Dateien
+ / -
Zeilen
SB4 Save Sharding und SB5 PgBouncer mit N-fachen Web-Replicas machen MAYDAY SIM produktionsreif für parallelen Multiplayer-Betrieb — während der Einsatz-Drawer seine finale Form bekommt und die Tenancy-Refaktorierung ihren letzten Nagel einschlägt.
🔵 NEUES FEATURE
→ Der Einsatz-Drawer zeigt jetzt vollständig alle zugewiesenen Fahrzeuge an, sodass Dispatcher ohne Tab-Wechsel sofort sehen, welche Einheiten bereits disponiert sind.—Key[DerHalbe]
- Wenn drei Einsätze parallel laufen und du in zehn Sekunden priorisieren musst: HLF 1 fährt, RTW 3 ist vor Ort, Streifenwagen 7 wurde abgerufen — alles auf einen Blick im Drawer.
- Kein Umweg über separate Ansichten mehr nötig, um den aktuellen Dispositionsstand eines Einsatzes zu verstehen.
🔴 BUGFIX
→ CLI Entry-Point für das SB1-Backfill-Script und das Cutover-Runbook für den Event-Store-Wechsel wurden korrigiert, sodass die Migration manuell ausführbar und der Produktivwert dokumentiert ist.—
Shadow
- Das Backfill-Script war ohne CLI Entry-Point nicht direkt ausführbar — Migrations-Operator musste vorher in den Source-Code schauen, um den Einstiegspunkt zu finden.
- EVENT_STORE_BACKEND=pg ist jetzt als offizieller Produktivwert in der Env-Dokumentation verankert.
🛡️ INFRASTRUKTUR
→ SB4 Save Sharding verteilt Spielstände horizontal über mehrere Shards, sodass gleichzeitige Saves nicht mehr auf einen einzigen Prozess serialisiert werden und die Latenz bei hoher Last stabil bleibt.—
Shadow
- Bei 50 gleichzeitig aktiven Dispatchern bearbeitet jeder Shard nur seine zugewiesene Teilmenge der Sitzungen — Speicher-Latenz steigt nicht mehr linear mit der Nutzerzahl.
- Shard-Config wird defensiv in die Runner-Stage des Build-Prozesses kopiert — Lehre aus SB3, damit fehlende Config-Dateien keinen Silent-Fail beim Start verursachen.
- Horizontaler Scale-out per N-Scheduler-Instanzen ist via Sharding-Skalierungsanleitung (docs/runbooks) vollständig dokumentiert.
→ SB5 führt PgBouncer Connection Pooling, N-fach replizierte Web-Instanzen und Traefik Sticky Sessions ein, sodass MAYDAY SIM unter echter Mehrspieler-Last stabil bleibt ohne die Datenbank mit direkten Verbindungen zu überlasten.—
Shadow+Key[DerHalbe]
- PgBouncer pooled alle Datenbankverbindungen: statt N Replicas × direkten Connections bleibt die Connection-Zahl zur Datenbank kontrolliert, egal wie viele Web-Instanzen laufen.
- Traefik Sticky Sessions garantieren, dass dein Browser immer zur selben Web-Instanz zurückgeroutet wird — Session-State bleibt konsistent ohne zentralen Sitzungsspeicher.
- Health-Checks und Deploy-Skript laufen jetzt über Traefik statt direkt auf Port :3200 — der Web-Service hat keinen Host-Port-Binding mehr (2 Replicas hinter dem Reverse Proxy).
- Changelog-API ist jetzt über host.docker.internal erreichbar — der bisherige /changelog/<version>-404-Fehler aus dem Container heraus ist behoben.
🟠 VERBESSERT
→ Tenancy-Refaktorierung #350 vollständig abgeschlossen: Datenmischung zwischen Spieler-Kontexten ist strukturell durch NOT NULL-Constraints und Error-Level-Prüfungen ausgeschlossen.—Key[DerHalbe]
- ~85 Tenancy-Compiler-Warnungen bereinigt — der Build ist wieder sauber ohne unterdrückte Warnungen, die potenzielle Datenisolations-Bugs verdeckten.
- 6 kritische Tabellen auf saveId NOT NULL umgestellt: ein Datensatz ohne Zuordnung zu einem Spielstand kann nicht mehr in die Datenbank geschrieben werden.
- Tenancy-Rules auf Error-Level hochgesetzt: tenant-ambiguous Code bricht jetzt den Build statt nur zu warnen — kein versehentliches Einschleusen mehr möglich.
- DMMF-Drift-Test sichert ab, dass Prisma-Schema und tatsächliches DB-Schema nie wieder auseinanderlaufen.