mivita/dev/subdomain-optimization-gpt-5/docs/ADR-001-domain-session-handling.md
2025-10-20 17:42:08 +02:00

1.1 KiB

ADR-001: Zweistufiges Domain- & Session-Handling

Kontext

Die bestehende Middleware/Provider-Logik greift in Teilen vor StartSession auf Session-Daten zu. Das führt in Randfällen zu doppelt erzeugten Sessions und inkonsistentem user_shop-Zustand.

Entscheidung

Wir trennen strikt in zwei Phasen:

  1. DomainBootstrap (früh, rein):

    • Host parsen → DomainContext
    • config('session.domain') + config('app.url') setzen
    • KEIN Sessionzugriff
  2. DomainSessionSync (spät, zustandsvoll):

    • Session ist aktiv
    • UserShopSessionManager synchronisiert user_shop in Session und Cookie

Alternativen

  • Alles in einer Middleware: führt zu Sessionzugriff vor StartSession oder verspäteter Setzung von session.domain
  • Nur Cookies, keine Session: bricht vorhandene Annahmen in Views/Controllern

Konsequenzen

  • Keine doppelten Sessions durch frühe Zugriffe
  • Sticky-Shop über Subdomains stabil
  • Optionale Abwärtskompatibilität via Legacy-Session-Keys

Status

Prototyp in dev/subdomain-optimization-gpt-5 abgelegt. Schrittweise Integration empfohlen.