SyncPolicy и ConflictPolicy


НАЧАЛО >> API ИРБИС 64/128 >> SyncPolicy и ConflictPolicy📄 Скачать в DOCX


SyncPolicy и ConflictPolicy являются настройками модуля API для внешних интеграций, где одного mapping уже недостаточно. Они позволяют объяснимо определить, можно ли применить входящее или исходящее изменение, какие поля конфликтуют, какая policy выбрана и почему результат должен быть отклонен, отложен, передан доменному модулю или отправлен на ручное разрешение.

1. SyncPolicy

SyncPolicy хранится как отдельная API-запись с типом Политика синхронизации.

Политика описывает:

Операция SyncPolicy может быть только contract-уровнем. API строит SyncPlan и SyncApplyRequest, но не сохраняет доменную запись, не выполняет Workflow-переход, не публикует события и не ставит Queue job.

2. ConflictPolicy

ConflictPolicy хранится как отдельная API-запись с типом Политика разрешения конфликтов.

Поддерживаемые стратегии:

Если policy не задана или неполна, безопасное поведение по умолчанию - reject-with-explanation. Неявное перезаписывание внутреннего или внешнего состояния запрещено.

3. Dry-run sync

Функция API/DryRunSync принимает sync context и payload, вызывает API/DryRunMapping, подбирает SyncPolicy/ConflictPolicy, классифицирует field-level conflicts и возвращает SyncPlan.

SyncPlan включает:

Dry-run sync не имеет побочных эффектов.

4. Границы ответственности

API владеет SyncPolicy, ConflictPolicy, dry-run sync, explainable diff, SyncPlan, SyncApplyRequest/SyncApplyResult contract, where-used и API diagnostics.

EventBus владеет событиями, inbox/outbox, delivery, retry и dead-letter доставки.

Queue владеет фоновым выполнением, scheduling, retry/backoff, timeout, worker state и job dead-letter.

Security владеет правами, grants/denies, masking, field security и безопасными отказами доступа.

FieldConfiguration владеет stable field keys и семантикой полей.

Workflow* владеет workflow-проектами, статусами, переходами и доступностью workflow-действий.

Доменные модули применяют SyncApplyRequest, сохраняют записи, выполняют бизнес-валидацию и возвращают SyncApplyResult.