### Schlachtplan für das 'infrastructure'-Modul

Basierend auf der Analyse des aktuellen Zustands (Stand: 11. Oktober 2025) habe ich einen strukturierten Aktionsplan erstellt. Die letzte größere Aktualisierung war im Juli 2025, seitdem gab es signifikante Änderungen am Gateway-Modul.

---

### 🔴 Phase 1: SOFORT (Diese Woche)

#### 1.1 Gateway-Tests reparieren (Höchste Priorität)
**Problem:** Tests sind komplett defekt - nur ~47% funktionieren noch (25/53 Tests).

**Aktionen:**
- ❌ **Löschen:** `JwtAuthenticationTests.kt` - testet nicht-existierende Custom-Filter
- ✅ **Behalten:** `FallbackControllerTests.kt`, `GatewayApplicationTests.kt`
- ✏️ **Überarbeiten:** `GatewayRoutingTests.kt`, `GatewaySecurityTests.kt`, `GatewayFiltersTests.kt`
    - Option A: Tests mit MockJWT-Tokens ausstatten (siehe `TestSecurityConfig.kt`)
    - Option B: Tests auf Public Paths verlegen (`/actuator/**`, `/fallback/**`)
    - Option C: Security in Tests deaktivieren

**Warum jetzt:** Tests geben keine Sicherheit mehr - blockiert Entwicklung.

**Zeitaufwand:** 4-6 Stunden

---

#### 1.2 Gateway Build-Datei bereinigen
**Problem:** Duplizierte Dependency in `gateway/build.gradle.kts` (Zeile 33-34).

**Aktion:**
```kotlin
// ENTFERNEN: Zeile 34
implementation(project(":infrastructure:event-store:redis-event-store"))  // ← Duplikat!
```

**Zeitaufwand:** 5 Minuten

---

### 🟡 Phase 2: KURZFRISTIG (Nächste 2 Wochen)

#### 2.1 Dependency-Versionen aktualisieren
**Problem:** Versionen von Juli 2025 - teilweise veraltet.

**Zu prüfen und aktualisieren:**

| Dependency | Aktuell | Latest (Okt 2025) | Priorität |
|------------|---------|-------------------|-----------|
| Spring Boot | 3.5.5 | 3.5.x | Mittel |
| Spring Cloud | 2025.0.0 | 2025.0.x | Mittel |
| Kotlin | 2.2.20 | 2.2.x | Niedrig |
| Keycloak | 26.0.7 | 26.x.x | Hoch |
| Testcontainers | 1.21.3 | 1.21.x | Niedrig |
| PostgreSQL Driver | 42.7.7 | 42.7.x | Niedrig |

**Aktion:**
1. `gradle/libs.versions.toml` aktualisieren
2. Tests nach jedem Update ausführen
3. Breaking Changes dokumentieren

**Zeitaufwand:** 1-2 Tage (mit Testing)

---

#### 2.2 Docker-Images aktualisieren
**Problem:** Einige Docker-Images sind möglicherweise veraltet.

**Zu prüfen:**

```yaml
# docker-compose.yml
postgres: 16-alpine           # ✅ Aktuell (neueste: 16.x)
redis: 7-alpine               # ✅ Aktuell
keycloak: 26.4.0              # ⚠️ Prüfen auf 26.x updates
consul: 1.15                  # ⚠️ Prüfen (neueste: 1.20+)
kafka: 7.4.0                  # ⚠️ Prüfen (neueste: 7.8+)
prometheus: v2.54.1           # ⚠️ Prüfen
grafana: 11.3.0               # ✅ Wahrscheinlich aktuell
```

**Aktion:**
1. Versions-Check durchführen
2. Schrittweise aktualisieren (einzeln testen!)
3. `.env`-Datei mit Versions-Variablen anlegen

**Zeitaufwand:** 3-4 Stunden

---

#### 2.3 Monitoring-Modul vervollständigen
**Problem:** Nur 3 Kotlin-Files - deutlich unterimplementiert im Vergleich zur Dokumentation.

**Dokumentiert aber fehlt:**
- Distributed Tracing (Zipkin) - Docker-Container fehlt!
- Custom Metrics Implementation
- Health Check Aggregation
- Alerting Rules Implementation

**Aktion:**
1. Zipkin zu `docker-compose.yml` hinzufügen
2. Tracing-Integration in Gateway testen
3. Custom Metrics-Library erstellen
4. Prometheus Alerting Rules konfigurieren

**Zeitaufwand:** 2-3 Tage

---

### 🟢 Phase 3: MITTELFRISTIG (Nächste 4-6 Wochen)

#### 3.1 Dokumentation aktualisieren
**Problem:** README von Juli 2025 - nicht mehr aktuell.

**Zu aktualisieren:**

**`README-INFRASTRUCTURE.md`:**
- Zeile 552: "Letzte Aktualisierung: 25. Juli 2025" → Oktober 2025
- Security-Sektion: OAuth2 Resource Server statt Custom JWT Filter
- Keycloak Version: 23.0 → 26.4.0
- Kafka Version: 7.5.0 → 7.4.0 (Downgrade dokumentieren!)
- Monitoring: Zipkin-Konfiguration ergänzen

**Neue Sections hinzufügen:**
- #### Bekannte Limitierungen
- #### Migration Notes (Juli → Oktober 2025)
- #### Troubleshooting erweitern

**Zeitaufwand:** 1 Tag

---

#### 3.2 Auth-Module überarbeiten
**Problem:** Vermutlich veraltet - Custom JWT vs. OAuth2 Resource Server Diskrepanz.

**Zu klären:**
- Werden `auth-client` und `auth-server` noch verwendet?
- Redundanz mit Gateway's OAuth2 Resource Server?
- Keycloak-Integration vereinheitlichen

**Aktion:**
1. Abhängigkeiten zu auth-Modulen analysieren
2. Entscheiden: Refactoring oder Deprecation
3. Wenn deprecated: Migration Path dokumentieren

**Zeitaufwand:** 3-5 Tage

---

#### 3.3 Cache-Module modernisieren
**Problem:** Redis 7 ist aktuell, aber Implementation-Patterns könnten veraltet sein.

**Zu prüfen:**
- Multi-Level Caching tatsächlich implementiert?
- Cache Statistics vorhanden?
- TTL Management korrekt?
- Integration mit Spring Cache Abstraction?

**Aktion:**
1. Cache-Tests erweitern
2. Performance-Metriken hinzufügen
3. Cache-Warming Strategy implementieren

**Zeitaufwand:** 2-3 Tage

---

#### 3.4 Event-Store Performance-Optimierung
**Problem:** Redis-basiert - für Production ggf. nicht optimal.

**Zu evaluieren:**
- Ist Redis der richtige Event Store für Production?
- Alternative: PostgreSQL mit Event Store Pattern?
- Snapshot-Strategie tatsächlich implementiert?

**Aktion:**
1. Performance-Tests durchführen
2. Event Store Benchmark (Redis vs. PostgreSQL)
3. Dokumentation aktualisieren mit Pros/Cons

**Zeitaufwand:** 1 Woche

---

### 🔵 Phase 4: LANGFRISTIG (Nächste 2-3 Monate)

#### 4.1 Service Mesh evaluieren
**Dokumentiert in "Zukünftige Erweiterungen"** - noch nicht implementiert.

**Optionen:**
- Istio (komplex, feature-reich)
- Linkerd (leichtgewichtig)
- Consul Connect (bereits Consul vorhanden!)

**Empfehlung:** Start mit Consul Connect - minimaler Overhead.

**Zeitaufwand:** 2-3 Wochen

---

#### 4.2 OpenTelemetry statt Zipkin
**Problem:** Zipkin ist veraltet - OpenTelemetry ist der moderne Standard.

**Migration Path:**
1. OpenTelemetry Collector aufsetzen
2. Spring Boot Auto-Instrumentation aktivieren
3. Zipkin als Backend behalten (kompatibel!)
4. Schrittweise migrieren

**Zeitaufwand:** 1-2 Wochen

---

#### 4.3 Security Hardening
**Aktuelle Gaps:**
- JWT Token Rotation nicht implementiert
- Rate Limiting nur dokumentiert, nicht konfiguriert
- Audit Logging fehlt
- HTTPS/TLS noch nicht erzwungen

**Aktion:**
1. Rate Limiting im Gateway aktivieren
2. Audit Log Framework implementieren
3. TLS für Service-zu-Service Kommunikation
4. Security Scan mit OWASP Dependency Check

**Zeitaufwand:** 2-3 Wochen

---

#### 4.4 Infrastructure as Code (IaC)
**Problem:** Nur Docker Compose - für Production nicht ausreichend.

**Zu erstellen:**
- Kubernetes Manifests (aktualisieren - Zeile 393+)
- Helm Charts (aktualisieren - Zeile 420+)
- Terraform für Cloud-Ressourcen
- CI/CD Pipelines

**Zeitaufwand:** 4-6 Wochen

---

### 📊 Priorisierungs-Matrix

| Phase | Aufgabe | Dringlichkeit | Aufwand | Impact |
|-------|---------|---------------|---------|--------|
| 1 | Gateway-Tests | 🔴 Sehr hoch | 4-6h | Hoch |
| 1 | Build-Datei | 🔴 Sehr hoch | 5min | Niedrig |
| 2 | Dependencies | 🟡 Hoch | 1-2d | Mittel |
| 2 | Docker-Images | 🟡 Hoch | 3-4h | Mittel |
| 2 | Monitoring | 🟡 Mittel | 2-3d | Hoch |
| 3 | Dokumentation | 🟢 Mittel | 1d | Mittel |
| 3 | Auth-Module | 🟢 Mittel | 3-5d | Hoch |
| 3 | Cache | 🟢 Niedrig | 2-3d | Mittel |
| 3 | Event-Store | 🟢 Niedrig | 1w | Mittel |
| 4 | Service Mesh | 🔵 Niedrig | 2-3w | Hoch |
| 4 | OpenTelemetry | 🔵 Niedrig | 1-2w | Mittel |
| 4 | Security | 🔵 Mittel | 2-3w | Hoch |
| 4 | IaC | 🔵 Niedrig | 4-6w | Hoch |

---

### 🎯 Empfohlene Reihenfolge

#### Woche 1-2:
1. Gateway-Tests reparieren
2. Build-Datei bereinigen
3. Dependencies aktualisieren

#### Woche 3-4:
4. Docker-Images aktualisieren
5. Monitoring vervollständigen
6. Dokumentation aktualisieren

#### Woche 5-8:
7. Auth-Module evaluieren/refactoren
8. Cache-Module modernisieren
9. Event-Store Performance-Tests

#### Monat 3-4:
10. Security Hardening
11. OpenTelemetry Migration
12. Service Mesh Evaluation

#### Monat 5-6:
13. Infrastructure as Code
14. Production Readiness Assessment

---

### 🛠️ Tooling-Empfehlungen

**Für Dependency-Management:**
- Renovate Bot oder Dependabot für automatische Updates
- `./gradlew dependencyUpdates` Plugin verwenden

**Für Security:**
- OWASP Dependency Check
- Trivy für Container-Scanning
- SonarQube für Code-Qualität

**Für Monitoring:**
- Grafana Dashboards aus Community importieren
- Prometheus Alertmanager konfigurieren

---

### 📝 Nächste Schritte

1. **Jetzt sofort:** Gateway-Tests fixen (blockiert alles andere)
2. **Diese Woche:** Dependencies updaten und testen
3. **Nächste Woche:** Sprint Planning für Phase 2
4. **Monatlich:** Review des Fortschritts und Reprioritisierung

---

### ⚠️ Risiken & Abhängigkeiten

**Kritische Pfade:**
- Gateway-Tests müssen ZUERST behoben werden
- Dependency-Updates können Breaking Changes haben
- Auth-Refactoring könnte alle Services betreffen

**Externe Abhängigkeiten:**
- Keycloak Breaking Changes bei Major Updates
- Spring Boot/Cloud Release Schedule beachten
- Kubernetes Cluster für IaC-Phase benötigt

---

**Geschätzter Gesamtaufwand:** 6-8 Wochen (bei 1 Vollzeit-Entwickler)

**Empfohlener Start:** Sofort mit Phase 1, dann iterativ durch die Phasen
