meldestelle/docs/99_Journal/2026-03-24_Session_Log_API_Design_ACL.md
Stefan Mogeritsch 354bd49de6 feat: integrate new desktop shell and extend backend & ADRs
- Added `meldestelle-desktop` module using JVM/Compose Desktop, registered in `settings.gradle.kts`.
- Integrated new screens and desktop navigation into core: `Veranstaltungen`, `TurnierDetail`, etc.
- Expanded backend with `ExposedFunktionaerRepository` in `officials-infrastructure`.
- Completed ADRs for bounded context mapping (`ADR-0014`) and context map (`ADR-0015`).
- Updated and extended project documentation with session logs and architecture decisions.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-24 18:22:15 +01:00

3.5 KiB
Raw Blame History

type date agent phase task status
SessionLog 2026-03-24 Lead Architect PHASE 4 API-Design & Anti-Corruption Layer ABGESCHLOSSEN

🧹 [Curator] Session Log API-Design & ACL

Datum: 24. März 2026 Agent: 🏗️ Lead Architect Phase: PHASE 4 MVP-Implementierung Aufgabe: API-Design: Schnittstellen zwischen den Contexts definieren (Anti-Corruption Layer)


Ergebnisse

Erstellt

  • ADR-0016 (docs/01_Architecture/adr/0016-api-design-acl-de.md)
    • Architektur-Muster: Ports & Adapters (Hexagonal) für alle Contexts
    • REST-API-Katalog für alle 3 P1-Contexts (actor, event-management, registration)
    • Vollständige DTO-Definitionen (Inbound Commands + Outbound DTOs)
    • ACL-Port-Interfaces: AktorReferenzPort, TurnierReferenzPort
    • ACL-Adapter-Implementierung mit Übersetzungslogik (DTO → Referenz-Objekt)
    • Domain Events-Katalog: 8 Events über 3 Contexts
    • ZNS-Schnittstelle: ZnsPort mit A-Satz / B-Satz
    • Offline-First Cache-Strategie für ACL-Adapter
    • Implementierungs-Reihenfolge (P1-Priorität)

Aktualisiert

  • MASTER_ROADMAP.md: Task [x] abgehakt, ADR #10 in Tabelle eingetragen
  • docs/01_Architecture/adr/README.md: ADR-0016 eingetragen

Kern-Entscheidungen (ADR-0016)

Bereich Entscheidung
Muster Ports & Adapters (Hexagonal Architecture)
Kommunikation REST (synchron) + Domain Events (asynchron)
ACL-Regel Domain-Objekte verlassen den Context niemals
DTOs Flach, serialisierbar, ohne Domänen-Logik
Offline Lokale SQLite-Caches in ACL-Adaptern
ZNS Eigener ZnsPort im actor-context (isoliert)

REST-API Übersicht

Context Base-URL Endpunkte
actor-context /api/v1/actors 8 (Reiter, Pferde, Funktionäre, Vereine)
event-management-context /api/v1/events 6 (Veranstaltungen, Turniere, Bewerbe)
registration-context /api/v1/registrations 6 (Nennungen, Transfer)

Domain Events Übersicht

Context Events
actor-context ReiterAktualisiert, PferdAktualisiert, ReiterGesperrt
registration-context NennungEingereicht, NennungStorniert, NennungTransferiert
event-management-context TurnierEroeffnet, NennungsschlussErreicht, TurnierAbgesagt

Status PHASE 4: Lead Architect Tasks

  • ADRs vervollständigen (Bounded Context Mapping + Context Map) → ADR-0014, ADR-0015
  • API-Design & ACL definieren → ADR-0016

Lead Architect Tasks PHASE 4: ABGESCHLOSSEN


Nächste Schritte (Backend Developer)

Gemäß Implementierungs-Reihenfolge aus ADR-0016:

  1. actor-context REST API (/api/v1/actors) implementieren
  2. event-management-context REST API (/api/v1/events) implementieren
  3. ACL-Adapter im registration-context implementieren
  4. registration-context REST API (/api/v1/registrations) implementieren
  5. Domain Event NennungEingereicht als erstes Event
  6. Offline-Cache (Bulk-Sync beim Turnier-Download)