SYSTEM ATLASЗагрузка материала

Контракт доставки: лента изменений

Change Feed Delivery Contract

Это явное соглашение о подтверждении, повторе, порядке и допустимых дубликатах при передаче сообщения или задания.

Простыми словами

Например, в проекте для «лента изменений» добавляют проверку «контракт доставки»: конфигурация задаёт порог, автоматизация собирает сигнал, а превышение блокирует продвижение либо переводит систему в заранее описанный безопасный режим. Поэтому при проектировании заранее решают, что произойдёт при задержке, повторе запроса или потере связи - иначе редкий сетевой сбой превращается в дубли, противоречивые данные или зависание.

Пример от @Vibeclakr

Пример при разработке

Например, для «лента изменений» задают понятный порог и автоматическую проверку «контракт доставки». Если порог нарушен, выпуск останавливают или система переходит в заранее выбранный безопасный режим.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Формальное определение

Для «лента изменений» это явное соглашение о подтверждении, повторе, порядке и допустимых дубликатах при передаче сообщения или задания. Заранее задают подтверждение, повтор и дедупликация и способ увидеть результат. Если результат нельзя проверить, правило существует только на бумаге.

Механизм действия

Для «лента изменений» сначала фиксируют исходное состояние, подтверждение, повтор и дедупликация, допустимый порог и действие на случай нарушения. Затем проверяют это в тестах, при выпуске или в работе системы и сохраняют результат.

Пример в работе

Нерабочий подход

Записать «Контракт доставки: лента изменений» в документации и считать работу законченной, не назначив ответственного и не определив, как проверить результат.

Системный подход

Назвать конкретный риск, задать подтверждение, повтор и дедупликация, назначить ответственного и пересматривать правило после значимых изменений.

Ограничения

«Контракт доставки: лента изменений» закрывает только один класс риска. Она не заменяет проверку безопасности, корректности данных, отказоустойчивости и пользовательских последствий.

Источник

Gregor Hohpe, Bobby Woolf, «Enterprise Integration Patterns», без даты.

Первоисточник