В настоящее время я моделирую основанную на источнике событий логику домена для одного из моих проектов.
Она основана на CQRS с денормализованной стороной чтения sql и потоками событий на стороне записи.
У меня есть требование, чтобы одна из сущностей домена имела какое-то свойство status
(это в основном перечисление).status
может быть изменено двумя способами: либо пользователем системы напрямую, либо вследствие других изменений в системе.С точки зрения домена, только изменение пользователя является истинным изменением и, таким образом, заслуживает для его собственного события, другие переходы статуса могут быть рассчитаны из текущего состояния (другие свойства).
Но.status
свойство имеет жизненно важное значение в модели чтения.Кроме того, система должна предоставить текущую сущность status
и все исторические статусы.Но для того, чтобы сделать это, похоже, мне нужны технические события для всех переходов состояний, которые система будет излучать после того, как вычисленное состояние действительно изменится.
Теоретически я могу избежать этих технических События.Единственная причина, по которой я рассматриваю эту опцию, заключается в том, что журнал изменений сущности теперь представляет собой простую симпатичную распечатку связанных событий.