meldestelle/docs/01_Architecture/adr/0027-draft-domain-and-delta-sync-de.md
2026-04-21 16:21:22 +02:00

1.5 KiB
Raw Blame History

type status owner date
ADR PROPOSED Lead Architect 2026-04-21

ADR-0027 — Draft-Domain & DeltaSync (Versionierung, Konfliktlösung, Idempotenz)

Kontext

  • OfflineFirst verlangt lokale Drafts, ResumeFähigkeit und robuste Synchronisation bei instabiler Konnektivität.
  • Heute: kein einheitliches DraftModell, keine standardisierte Schrittweise Speicherung.

Entscheidung

  • Einführung einer DraftDomain mit Version/ETag und SchrittPatchs:
    • POST /api/events/drafts (idempotent über IdempotencyKey) erstellt/vereinigt Drafts.
    • PATCH /api/events/drafts/{id} speichert stepweise Deltas (nur geänderte Felder seit version).
    • POST /api/events finalisiert (ServerValidierung, Erstellung veranstaltungId).
  • Client OfflineQueue mit Retry/Backoff; Konflikte als nichtblockierende Hinweise.

Konsequenzen

  • Reproduzierbare, idempotente Speicherung; geringere Payloads; klare Konfliktauflösung.
  • Erfordert Versionierung im DraftStore und Migrationspfade bei FlowÄnderungen (flowVersion).

Umsetzung

  • Frontend: DraftStore (Autosave onLeave), DeltaBuilder je Step, Queue mit IdempotencyKey.
  • Backend: Versionsverwaltung, IfMatch/ETag Unterstützung, ConflictDetect (409) mit MergeHinweisen.

Verweise

  • RoadmapAbschnitt: docs/01_Architecture/MASTER_ROADMAP.md#3-initiative-wizard-orchestrator--offline-drafts-q2q3-2026
  • Contracts: folgen nach APISkizzierung (contracts/ Verzeichnis)