Domain Event — first-class citizen в domain-модели (Evans, 2003; развито Vernon).

Свойства:

  • Прошедшее время в имени: OrderPlaced, а не PlaceOrder.
  • Иммутабельность — событие произошло, изменить нельзя.
  • Полнота контекста — содержит всё, что нужно consumer’у.
  • Собирается aggregate, публикуется после commit.

Разница с Integration Event:

  • Domain Event живёт внутри контекста.
  • Integration Event — в контракте между контекстами. Стабильнее, публичнее.

Публикация: через Outbox pattern после commit транзакции. Публиковать до commit — риск ложной публикации, если транзакция откатится.

Синонимы

Доменное событие

Не путать с

← ко всему глоссарию