# Konflikt Handling

Dieser Handler speichert Konflikte in der Datenbank und liefert die Auflösung, wenn sie in der Datenbank gespeichert ist.

Am Ende der Synchronisation werden alle irrelevanten und gelösten Konflikte aus der Datenbank entfernt, da diese nicht mehr benötigt werden.

Gelöste Konflikte sind Konflikte, die von einem Benutzer oder einem Programm unter Verwendung der REST-API gelöst wurden.

Irrelevante Konflikte sind Konflikte, die nicht mehr existieren. Dafür kann es verschiedene Ursachen geben, wie z.B. das manuelle Löschen aller betroffenen Elemente.

Die derzeitige Implementierung verwendet ein Versionsfeld in der Konfliktdatenbanktabelle, um irrelevante Konflikte zu finden. Zu Beginn der Synchronisation wird die Version hochgezählt und neue oder aktualisierte Konflikte speichern die neue Versionsnummer. Nach Abschluss der Synchronisierung werden alle Konflikte, die nicht die neue Versionsnummer haben, gelöscht.

Information

Es gab einen alternativen Ansatz, bei dem ein Zeitstempel verwendet wurde, um alle Konflikte zu löschen, die älter als der aktuelle Zeitstempel sind.

Aus Gründen der Korrektheit musste dieser Zeitstempel aktualisiert werden, um zu verhindern, dass ein Konflikt, der bei einem früheren Synchronisierungslauf gefunden wurde und noch besteht, gelöscht wird.

Problematisch war, dass dieser Zeitstempel auch den Benutzern angezeigt werden kann, und es kann verwirrend sein, wenn ein Konflikt plötzlich einen anderen Zeitstempel hat.

Zuletzt aktualisiert: 7. Februar 2025 um 08:06