- Added session log documenting Web-App stabilization, including fixes for Webpack build and login issues. - Implemented full-sync workaround in `PingEventRepositoryImpl` due to SQLDelight async driver limitations. - Updated `PingDashboard` to display sync completion messages. - Added `libs.sqldelight.coroutines` dependency and regenerated SQLDelight queries. - Updated roadmap and journal with progress on frontend sync integration.
4.0 KiB
4.0 KiB
| type | status | owner | last_update |
|---|---|---|---|
| Roadmap | ACTIVE | Lead Architect | 2026-01-27 |
MASTER ROADMAP Q1 2026: "Operation Tracer Bullet"
Strategisches Ziel: Wir validieren die gesamte Architektur-Kette (Frontend -> Gateway -> Service -> DB) anhand des Ping-Service. Dieser Service dient als technischer Blueprint (Vorlage) für alle kommenden Fach-Services. Er muss "Production Ready" gehärtet sein, bevor wir Fachlichkeit implementieren.
Aktueller technischer Stand:
- Build System: ✅ Grün (Gradle, Kotlin 2.3, Spring Boot 3.5.9, Spring Cloud 2025.0.1).
- Code-Basis: ✅
ping-serviceexistiert, Delta-Sync implementiert. - Infrastruktur: ✅ Docker Environment stabil, Tracing aktiv.
- Frontend: ✅ Web-App läuft (JS/Wasm), Login funktioniert, Sync (Full) funktioniert.
2. Arbeitsaufträge an die AGENTS (Phasenplan)
PHASE 1: Backend Hardening & Infrastructure (Woche 2)
Ziel: Der Ping-Service läuft sicher, stabil und beobachtbar in der Docker-Umgebung.
👷 Agent: Senior Backend Developer
Deine Aufgabe ist es, den ping-service von einem "Hello World" zu einem Enterprise-Microservice zu machen.
- Security Implementation (Prio 1):
- Konfiguriere Spring Security als OAuth2 Resource Server.
- Implementiere RBAC (Role Based Access Control) für
/ping/secure. - Stelle sicher, dass Tokens vom Keycloak (Docker) korrekt validiert werden.
- Resilience (Prio 2):
- Aktiviere Resilience4j CircuitBreaker für Datenbank-Zugriffe.
- Implementiere Fallbacks (z.B. "Degraded Mode" wenn DB weg ist).
- Observability (Prio 3):
- Aktiviere Spring Boot Actuator (Health, Info, Prometheus).
- Stelle sicher, dass Tracing-IDs (Micrometer/Zipkin) durchgereicht werden.
- Persistence Härtung:
- Integriere Flyway für Datenbank-Migrationen (kein
ddl-autoin Prod!). - Implementiere einen "Deep Health Check" (
/actuator/health), der DB und Cache aktiv prüft.
- Integriere Flyway für Datenbank-Migrationen (kein
🏗️ Agent: Infrastructure & DevOps
Deine Aufgabe ist die Stabilität der Laufzeitumgebung.
- Docker Environment:
- Stabilisiere
docker-compose.yaml. Alle Services (Consul, Keycloak, Postgres, Zipkin) müssen zuverlässig starten. - Prüfe Migration von Redis zu Valkey (Open Source Härtung), wie im Hardening-Dokument vorgeschlagen.
- Stabilisiere
- Gateway Config:
- Konfiguriere Routen und CircuitBreaker im Spring Cloud Gateway für den
ping-service.
- Konfiguriere Routen und CircuitBreaker im Spring Cloud Gateway für den
PHASE 2: Frontend Integration (Woche 3)
Ziel: Das Frontend kann authentifiziert mit dem Backend sprechen.
🎨 Agent: KMP Frontend Expert
Deine Aufgabe ist die Anbindung des gehärteten Backends.
- HTTP Client Core:
- Konfiguriere Ktor Client mit
AuthInterceptor(Bearer Token Injection). - Implementiere Global Error Handling (Umgang mit 401, 403, 503).
- Konfiguriere Ktor Client mit
- Authentication Flow:
- Implementiere den OIDC Login Flow (Keycloak) für Desktop und Web.
- Speichere Tokens sicher im Memory (AuthState).
- UI Implementation:
- Baue einen Debug-Screen, der die Endpunkte
/ping/simpleund/ping/securevisualisiert.
- Baue einen Debug-Screen, der die Endpunkte
PHASE 3: Offline & Sync (Woche 4)
Ziel: Datenkonsistenz auch bei Netzwerk-Verlust.
🤝 Joint Task Force (Backend & Frontend)
- Sync-Protokoll:
- Implementierung des Delta-Syncs basierend auf
PingEvent(UUIDv7 + Timestamp). - Frontend: Speicherung in SQLDelight (lokal).
- Backend: Bereitstellung des Sync-Endpunkts.
- Implementierung des Delta-Syncs basierend auf
- Web-App Sync:
- Implementierung von SQLDelight mit WebWorkerDriver (OPFS).
- Workaround für Async-Select-Bug (Full-Sync).
3. Definition of Done (für Phase 1 & 2)
docker compose upstartet den kompletten Stack fehlerfrei.- Frontend-User kann sich einloggen (Keycloak).
- Frontend zeigt Daten vom
ping-servicean. - Beim Abschalten der DB zeigt der Service einen sauberen Fallback (CircuitBreaker offen).
- In Zipkin ist der komplette Request-Trace (Frontend -> Gateway -> Service -> DB) sichtbar.