Досить часто в моїй роботі виростає ідея двосторонньої синхронізації даних між системами баз даних. Класичний приклад - це дві трохи різні CRM системи (скажімо, Raiser's Edge та Salesforce) та необхідність двосторонньої синхронізації даних контактів між ними.
Розгляд міркувань API, окрім припущення, що у вас є спільний ключ для синхронізації та чітко продуманий алгоритм / шаблон, який слід використовувати, це завдання, яке часто недооцінюють нетехнологи.
Наприклад, ви повинні стежити за:
- Чи можете ви легко визначити, які записи змінилися в обох системах (або вам доведеться порівнювати всі записи між системами, щоб виявити зміни)
- Якщо ви збираєтесь синхронізувати один раз на N-години, як вирішити конфлікти, коли однаковий запис змінюється в більш-менш один і той же час в обох системах
- Якщо ви збираєтеся синхронізувати в режимі реального часу (тобто оновлення в одній системі негайно запускає оновлення в іншій системі), як впоратися з розбіжністю в часі через помилки або збої в системі
Особисто я можу придумати шляхи вирішення всього цього, але мені цікаво, чи є якісь відомі зразки, література чи найкращі практики, до яких я можу звернутися.