Zum Inhalt springen
← Zurück zum Einsatzprotokoll

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.ShadowShadow

  • 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.ShadowShadow

  • 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.ShadowShadow+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.
#Leitstellen-Simulation#BOS-Spiel Deutschland#MAYDAY SIM Update#Dispatcher Simulation#Feuerwehr Simulation Multiplayer#Einsatz-Management Spiel#Blaulicht-Simulation