Cukup sering dalam pekerjaan saya gagasan sinkronisasi data 2 arah antara sistem database muncul. Contoh klasik adalah dua sistem CRM yang sedikit berbeda (katakanlah, Raiser's Edge dan Salesforce) dan kebutuhan untuk memiliki sinkronisasi dua arah data Kontak di antara mereka.
Selain pertimbangan API, dengan anggapan Anda memiliki kunci bersama untuk disinkronkan, dan murni memikirkan algoritma / pola yang akan digunakan, ini adalah tugas yang sering dianggap remeh oleh non-teknologi.
Misalnya, Anda harus berhati-hati untuk:
- Dapatkah Anda dengan mudah mendeteksi catatan mana yang telah berubah di kedua sistem (atau apakah Anda harus membandingkan semua catatan antara sistem untuk mendeteksi perubahan)
- Jika Anda pergi untuk sinkronisasi sekali-setiap-N-jam, bagaimana menangani konflik di mana catatan yang sama berubah pada waktu yang kurang lebih sama pada kedua sistem
- Jika Anda pergi untuk sinkronisasi waktu-nyata (yaitu pembaruan dalam satu sistem segera memicu pembaruan ke sistem lain) bagaimana menangani perbedaan dari waktu ke waktu karena bug atau sistem crash
Secara pribadi saya bisa memikirkan cara untuk mengatasi semua ini, tetapi saya bertanya-tanya apakah ada pola, literatur, atau praktik terbaik yang bisa saya lihat.