Управление репликацией разнородных и разноструктурных баз данных

На одном из проектов в рамках импортозамещения возникла задача организации двунаправленной непрерывной синхронизации между двумя базами данных: старой-импортной и новой-отечественной. Эта задача была усложнена тем, что СУБД разные и структуры БД отличаются.
Стандартными средствами такая задача не решается, поэтому мы нашли продукт с открытым исходным кодом SymmetricDS, работающий на базе Java.
Особенностью этого продукта является то, что настройки и правила синхронизации базы данных хранятся непосредственно в ней самой (около 30 таблиц). Разобравшись со внутренней структурой этого синхронизатора, мы создали программу-надстройку, которая автоматизирует выполнение 3 функций:
- Построение структуры одной из БД.
- Определение маппинга между двумя структурами БД.
- Загрузка настройки и правил в синхронизатор.
Наша программа-надстройка позволила легко решить поставленную задачу лучше, чем коммерческие аналоги. Задача решена, и в копилке наших решений появилось ещё одно.