Optimistic Locking
Backend (haben wir)
Jede Entity hat eine version Column. Bei Update: WHERE version = expectedVersion. Wenn sich die Version geaendert hat → ConflictError("version_conflict").
UI Default: Error-Toast + Reload
Framework handled den version_conflict Error automatisch im UI:
┌──────────────────────────────────────────┐│ ⚠ Dieser Datensatz wurde in der ││ Zwischenzeit geändert. ││ ││ [Neu laden] [Verwerfen] │└──────────────────────────────────────────┘Das reicht fuer 90% der Faelle. Kein Code vom Entwickler noetig — das Framework erkennt den Error-Typ und zeigt den Dialog.
Spaeter moeglich: Diff + Merge
Features koennen den Default ueberschreiben und einen eigenen Conflict-Handler registrieren:
r.screen({ id: "orderEdit", type: "entityEdit", onConflict: "diff", // Zeigt Aenderungen an statt nur Toast});Das ist aber Zukunft — der Default (Toast + Reload) ist erstmal genug.
Was der Entwickler tut
Nichts. version wird automatisch bei jedem Update hochgezaehlt, Conflict Detection passiert im Framework, UI zeigt den Dialog.