Molto spesso nei miei lavori emerge l'idea della sincronizzazione dei dati a 2 vie tra i sistemi di database. L'esempio classico è costituito da due sistemi CRM leggermente diversi (ad esempio, Raiser's Edge e Salesforce) e dalla necessità di disporre di una sincronizzazione bidirezionale dei dati di contatto tra di essi.
Considerazioni sulle API a parte, supponendo che tu abbia una chiave condivisa per la sincronizzazione, e pensando semplicemente all'algoritmo / modello da utilizzare, questo è un compito che viene spesso sottovalutato dai non-tecnici.
Ad esempio, devi fare attenzione a:
- Puoi facilmente individuare i record modificati in entrambi i sistemi (o dovrai confrontare tutti i record tra i sistemi per rilevare le modifiche)
- Se stai andando per una sincronizzazione una volta ogni ora, come gestire i conflitti in cui lo stesso record cambia più o meno contemporaneamente in entrambi i sistemi
- Se stai andando per una sincronizzazione in tempo reale (cioè un aggiornamento in un sistema fa scattare immediatamente un aggiornamento all'altro sistema) come gestire la divergenza nel tempo a causa di bug o crash del sistema
Personalmente riesco a pensare a come affrontare tutto questo, ma mi chiedo se ci siano modelli, letteratura o buone pratiche ben noti a cui potrei far riferimento.