Bien souvent, dans mon travail, l'idée de la synchronisation bidirectionnelle des données entre systèmes de bases de données est apparue. L'exemple classique est celui de deux systèmes CRM légèrement différents (Raiser's Edge et Salesforce, par exemple) et de la nécessité de synchroniser les données de contact dans les deux sens.
Outre les considérations relatives aux API, en supposant que vous disposiez d'une clé partagée sur laquelle vous souhaitez vous synchroniser et en pensant uniquement à l'algorithme / modèle à utiliser, cette tâche est souvent sous-estimée par les non-techniciens.
Par exemple, vous devez faire attention à:
- Pouvez-vous facilement détecter quels enregistrements ont changé dans les deux systèmes (ou devrez-vous comparer tous les enregistrements entre les systèmes pour détecter les modifications)?
- Si vous optez pour une synchronisation une fois toutes les N heures, comment gérer les conflits où le même enregistrement est modifié à peu près au même moment dans les deux systèmes
- Si vous optez pour une synchronisation en temps réel (c.-à-d. Une mise à jour dans un système déclenche immédiatement une mise à jour vers l'autre système), comment gérer les divergences dans le temps dues à des bugs ou à des pannes du système
Personnellement, je peux penser à des solutions à ce problème, mais je me demande s’il existe des modèles, de la littérature ou des pratiques exemplaires bien connus auxquels je pourrais me référer.