у меня есть Customer
Readmodel, который содержит некоторые свойства, включая active
имущество.
Теперь предположим, что я хотел бы заполнить 2 таблицы с информацией о клиентах: например, одна таблица только с customer id
а также active
статус и другая таблица, содержащая всю информацию.
Должен ли я сделать отдельный Projector
, Readmodel
а также Repository
для достижения этой цели?
РЕДАКТИРОВАТЬ:
Пример сценария:
CustomerCreatedEvent -> содержит все данные клиента
CustomerActivationEvent -> содержит только идентификатор клиента с включенным статусом = true
Readmodel = класс клиента
Проектор обрабатывает оба события.
Обработчик CustomerActivationEvent загрузит клиента и обновит таблицу «active_users» через CustomerRepository (или ActiveCustomersRepository?) На основе данных в CustomerActivationEvent.
Нет.
Обработчики событий вашей стороны чтения отвечают за обновление того, что вы называете Readmodels, так, как вы хотите.
Например, у вас может быть CustomerCreatedEventHandler, который обновляет 2 необходимые вам таблицы, или вы можете иметь два отдельных обработчика событий, оба подписчика одного и того же события, каждый из которых обновляет свою таблицу.
Других решений пока нет …