Sehr oft taucht in meiner Arbeit die Idee der bidirektionalen Datensynchronisation zwischen Datenbanksystemen auf. Das klassische Beispiel sind zwei leicht unterschiedliche CRM-Systeme (z. B. Raiser's Edge und Salesforce), zwischen denen eine bidirektionale Synchronisierung der Kontaktdaten erforderlich ist.
Abgesehen von API-Überlegungen ist dies eine Aufgabe, die von Nicht-Technikern oft unterschätzt wird, vorausgesetzt, Sie haben einen gemeinsamen Schlüssel für die Synchronisierung und denken nur an den zu verwendenden Algorithmus / das zu verwendende Muster.
Zum Beispiel müssen Sie auf Folgendes achten:
- Können Sie leicht erkennen, welche Datensätze sich in beiden Systemen geändert haben (oder müssen Sie alle Datensätze zwischen den Systemen vergleichen, um Änderungen zu erkennen)?
- Wenn Sie alle N Stunden eine Synchronisierung durchführen möchten, wie Sie mit Konflikten umgehen, bei denen sich derselbe Datensatz in beiden Systemen mehr oder weniger zur gleichen Zeit ändert
- Wenn Sie eine Echtzeitsynchronisierung durchführen möchten (dh ein Update auf einem System löst sofort ein Update auf dem anderen System aus), wie Sie mit zeitlichen Abweichungen aufgrund von Fehlern oder Systemabstürzen umgehen können
Persönlich kann ich mir überlegen, wie ich das alles angehen kann, aber ich frage mich, ob es bekannte Muster, Literatur oder Best Practices gibt, auf die ich mich beziehen könnte.