- 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>
3.5 KiB
3.5 KiB
| 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:
ZnsPortmit 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 eingetragendocs/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:
actor-contextREST API (/api/v1/actors) implementierenevent-management-contextREST API (/api/v1/events) implementieren- ACL-Adapter im
registration-contextimplementieren registration-contextREST API (/api/v1/registrations) implementieren- Domain Event
NennungEingereichtals erstes Event - Offline-Cache (Bulk-Sync beim Turnier-Download)