У меня есть следующий случай, когда я чешу голову.У меня есть Агрегат, назовем его Reservation, и у меня есть событие.Некоторые события приведут к изменению состояния агрегата.Часть этого состояния является функциональной и, естественно, относится к совокупному, например, к «рассчитанному налогу».Часть состояния, которое я бы сказал, скорее техническая, чем функциональная, например, если сообщение отправляется в стороннюю систему, можно назвать его «isMessageSentToASystem».В базе данных у меня есть две таблицы: одна для совокупности, другая для события.Я вижу два варианта сохранения состояния:
1) Я могу сохранить только то, что изменилось в третьей таблице, связанной с событием.Таким образом, я эффективно получу журнал ревизий.Я не думаю, что это хорошо подходит для моего приложения, хотя.Это сохранит мой агрегат неизменным
2) Я приму, что мой агрегат является изменяемым, и я запишу в него все функционально важные состояния, такие как «selectedTax».Но тут возникает вопрос, что мне делать с техническим состоянием, таким как «isMessageSenttoSystemA», так как у меня возникает ощущение, что это состояние не относится к самому агрегату, а является побочным эффектом события.
Могу ли я создать третью таблицу и связать ее с событием, где я могу написать свое техническое состояние?Как мне назвать такую таблицу?Мне действительно трудно найти правильное имя?
ОБНОВЛЕНИЕ: Я не уверен, станет ли это понятным из вопроса. Но меня больше всего интересует, как моделировать данные в базе данных.Я использую RDBMS.
UPDATE2: я не хочу реализовывать источник событий, и я думаю, что это не является обязательным условием для создания архитектуры, управляемой событиями.