JSON SYNC Delete

 

 

<< Click to Display Table of Contents >>

Navigation:  Kontakte & Anrufhistorie > Kontakte importieren > JSON >

JSON SYNC Delete

 

 

 

Hintergrund

Häufig wird übersehen, dass Synchronisationsmechanismen klare Strategien benötigen, um Aktualisierungen und Löschungen eindeutig zu übermitteln. Dieses Problem tritt selbst bei größeren Diensten auf.

Viele Systeme unterstützen zwar das Synchronisieren von Löschungen, jedoch oft nur für einen begrenzten Zeitraum (z. B. 30 Tage).

 

Das bedeutet:

Wenn in dieser Zeit ein Kontakt gelöscht wird (z. B. durch einen Administrator), wird diese Information nur innerhalb dieses Zeitfensters übertragen.

Ist man länger abwesend (z. B. im Urlaub), kann es passieren, dass veraltete bzw. „verwaiste“ Daten bestehen bleiben.

Deshalb ist es wichtig, die Funktionsweise der Synchronisation zu verstehen, um Missverständnisse oder vermeintliche Fehler zu vermeiden.

 

 

Problem: Fehlende DELETE-Informationen

Viele Implementierungen liefern keine expliziten DELETE-Informationen.

 

In solchen Fällen gilt:

Alle Daten müssen vollständig geladen werden

Einträge, die nicht mehr vorhanden sind, gelten als gelöscht

 

Dieser Ansatz wird als Datenabgleich (Full Sync) bezeichnet – ist aber bei großen Datenmengen ineffizient.

 

Aktueller Ansatz

Die Synchronisation funktioniert nach folgendem Prinzip:

Änderungen werden durch Vergleich mit dem bestehenden Datenbestand erkannt

Kontakte, die nicht mehr im Ergebnis enthalten sind, werden gelöscht

⚠️ Voraussetzung: Es muss immer der komplette Datenbestand geladen werden.

 

Einschränkungen

Wir gehen davon aus, dass die meisten Nutzer:

nur wenige Kontakte haben (typischerweise zwischen 1.000 und 2.000 Kontakten, maximal etwa 10.000)

 

Bei größeren Datenmengen und regelmäßiger Synchronisation kann es zu erhöhter Serverlast und Performance-Problemen kommen.

⭢ Spätestens dann sollten DELETE-Informationen direkt in der JSON-Antwort enthalten sein.

 

 

 

Die DELETE FLAG kann auf zwei Wegen erfolgen:

 

1. DELETE-Flag im Kontaktobjekt (empfohlen)

Ein Kontakt wird mit einem Löschkennzeichen übertragen:

{

"id""2",

"deleted"true,

"lastModified""2025-03-21T08:23:59Z"

}

 

 "id" dient zur eindeutigen Identifikation

 "deleted"true signalisiert die Löschung

 

 

2. Separate Liste gelöschter Kontakte

Alternativ wird eine Liste mit zu löschenden Kontakten bereitgestellt:

{

"deletedPeople": [

{

"contactid"2

},

{

"contactid"5

},

{

"contactid"41

}

]

Enthält nur die IDs der gelöschten Kontakte

Entspricht dem Vorgehen, das z. B. auch von Google verwendet wird