Концептуальная модель предметной области#

Определения элементов:
Граф (graph) — набор модулей, решающих единую бизнес-задачу.
Модуль (module) — полное описание правил репликации, включающее источники/приемники данных, описание структуры данных и правил преобразования. Модуль может быть запущен на исполнение при наличии исполнителя, умеющего исполнять модули нужного типа.
Конфигурация (config) — описание правил репликации и трансформации данных без привязки к конкретным источникам и приемникам данных. Конфигурация содержит:
«белый» список реплицируемых таблиц (или «черный» список нереплицируемых);
соответствие таблиц и полей в источнике таблицам и полям в приемнике;
правила трансформации данных, настройки синхронной репликации.
Для конфигурации можно задать произвольное число модулей. Модули, созданные для одной конфигурации, будут выполнять преобразования и репликацию по одним и тем же правилам, но между разными источниками и приемниками.
Соединение (connection) — URL конкретного источника данных. Например, PostgreSQL или файл.
Помимо URL источника/приемника для соединения можно задать дополнительные параметры в интерфейсе консоли, во вкладке Соединения, окне Редактирование свойств соединения, поле Опции. Например, для PostgreSQL это название слота логической репликации.
Представление (view) — произвольное объединение модулей для отображения и удобства массовых управляющих воздействий.
Для удобства управления и мониторинга пользователи консоли могут создавать произвольные представления, содержащие интересные пользователю модули. Модули, объединенные в представление, не связаны между собой и могут относиться к разным графам. Группировка модулей в различные представления позволяет удобно отображать все связанные задачи на одной странице консоли, быстрее искать нужные модули и выполнять массовые управляющие воздействия.
Метка (tag) — произвольная строка, позволяющая быстро найти модуль по ключевому слову.
С целью удобства поиска и фильтрации модули могут быть снабжены произвольным количеством текстовых меток – тегов.
Процесс (process) — запущенный модуль, то есть процесс операционной системы, выполняющий перемещение данных между хранилищами данных (БД, файловыми системами и так далее) в соответствии с настройками модуля.
Чтобы запустить процесс репликации, следует при помощи консоли или API запустить модуль, то есть породить процесс. В каждый момент только один процесс для каждого модуля может быть активен, но впоследствии возможно появление модулей, которые могут быть запущены в нескольких экземплярах.
Хост (host) — сервер, где установлены исполнители GraDeLy и где могут быть запущены процессы репликации.
При развертывании GraDeLy в конфигурации «клиент/сервер» администратор должен указать хост, на котором будет запущен процесс. Хост представляет собой сервер (физический или виртуальный). При развертывании в среде контейнерной виртуализации весь кластер Kubernetes представляет собой единственный хост, а физический сервер, где будет запущен процесс, определяет сам Kubernetes непрозрачно для потребителя.
Агенты взаимодействий - сущности, участвующие в процессе репликации
Приемник изменений - сущность, принимающая изменения в процессе репликации, обычно БД приемника.
Источник изменений - сущность, отправляющая изменения в процессе репликации, обычно БД источника.
Модуль захвата - сущность, захватывающая поток репликации от источника изменений, обычно модуль платформы логической репликации.
Модуль применения - сущность, передающая поток репликации к приемнику изменений, обычно модуль платформы логической репликации.
Данные - информация, имеющая ценность для потребителя, которая подлежит логической репликации.
Вектор изменений - единица данных, участвующих в репликации.
Схема данных - сущность, определяющая нахождение данных в источнике и приемнике.
Формат данных - способ записи данных.