meldestelle/docs/99_Journal/2026-01-17_Session_Log.md
Stefan Mogeritsch 351fe7a672 feat(sync): implement Delta-Sync API and update clients to support offline-first workflow
Added `/ping/sync` endpoint with timestamp-based Delta-Sync functionality to efficiently support offline-first clients. Extended `PingApi` and frontend clients (`PingApiClient`, `PingApiKoinClient`) with `syncPings`. Updated repository, service, and controller logic for sync handling, including new JPA query `findByCreatedAtAfter`. Adjusted test doubles and completed unit tests for backend and frontend alignment. Documented sync approach and API usage.
2026-01-17 12:22:16 +01:00

1.8 KiB

type date author participants status
Journal 2026-01-17 Curator
Backend Developer
Lead Architect
COMPLETED

Session Log: 17. Jänner 2026

Zielsetzung

Erweiterung des PingService um Delta-Sync-Funktionalität (Phase 3) zur Unterstützung von Offline-First-Clients.

Durchgeführte Arbeiten

1. Backend: Delta-Sync Implementierung

  • Contract (:contracts:ping-api):
    • Erweiterung des PingApi Interfaces um syncPings(lastSyncTimestamp: Long): List<PingEvent>.
    • Definition von PingEvent als DTO für Sync-Daten.
  • Domain (:backend:services:ping:ping-service):
    • Erweiterung von PingUseCase und PingRepository um Methoden zum Abrufen von Daten ab einem Zeitstempel.
  • Infrastructure:
    • Implementierung des Endpunkts /ping/sync im PingController.
    • Implementierung der JPA-Query findByCreatedAtAfter im Repository-Adapter.
  • Testing:
    • Erfolgreiche Implementierung von Unit-Tests für den neuen Endpunkt (PingControllerTest).
    • Behebung von Security-Problemen in Tests durch Deaktivierung von Filtern (@AutoConfigureMockMvc(addFilters = false)).

2. Frontend: Client-Anpassung

  • Aktualisierung von PingApiClient (Legacy) und PingApiKoinClient (Koin) zur Implementierung der neuen syncPings-Methode.
  • Anpassung des Test-Doubles TestPingApiClient zur Vermeidung von Build-Fehlern.

3. Dokumentation

  • Aktualisierung von /docs/05_Backend/Services/PingService.md mit Details zur Sync-Strategie.

Ergebnisse

  • Der PingService unterstützt nun Delta-Sync.
  • Frontend und Backend sind synchronisiert (Contracts).
  • Build und Tests sind grün.

Nächste Schritte

  • Integration der Sync-Logik in die Frontend-Applikation (durch Frontend Expert).
  • Validierung des Sync-Mechanismus mit echten Daten.