1.5 KiB
1.5 KiB
| type | status | owner | date |
|---|---|---|---|
| ADR | PROPOSED | Lead Architect | 2026-04-21 |
ADR-0027 — Draft-Domain & Delta‑Sync (Versionierung, Konfliktlösung, Idempotenz)
Kontext
- Offline‑First verlangt lokale Drafts, Resume‑Fähigkeit und robuste Synchronisation bei instabiler Konnektivität.
- Heute: kein einheitliches Draft‑Modell, keine standardisierte Schritt‑weise Speicherung.
Entscheidung
- Einführung einer Draft‑Domain mit Version/ETag und Schritt‑Patchs:
POST /api/events/drafts(idempotent über Idempotency‑Key) erstellt/vereinigt Drafts.PATCH /api/events/drafts/{id}speichert step‑weise Deltas (nur geänderte Felder seitversion).POST /api/eventsfinalisiert (Server‑Validierung, ErstellungveranstaltungId).
- Client Offline‑Queue mit Retry/Backoff; Konflikte als nicht‑blockierende 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), Delta‑Builder je Step, Queue mit Idempotency‑Key. - Backend: Versionsverwaltung, If‑Match/ETag Unterstützung, Conflict‑Detect (409) mit Merge‑Hinweisen.
Verweise
- Roadmap‑Abschnitt:
docs/01_Architecture/MASTER_ROADMAP.md#3-initiative-wizard-orchestrator--offline-drafts-q2q3-2026 - Contracts: folgen nach API‑Skizzierung (
contracts/Verzeichnis)