2016-06-10 17 views
1

У меня есть Customer Readmodel, который содержит некоторые свойства, включая свойство active.Несколько проекторов на одной и той же ReadModel в Бродвее CQRS

Теперь предположим, что я хотел бы заполнить 2 таблицы информацией о клиенте: например, одна таблица с только customer id и active статусом и другая таблица, содержащая всю информацию.

Должен ли я сделать отдельный Projector, Readmodel и Repository для этого?

EDIT: Пример сценария:

CustomerCreatedEvent -> содержит все данные о клиентах

CustomerActivatedEvent -> содержит только идентификатор клиента с поддержкой статуса = True

Readmodel = Клиент класса

Проектор обрабатывает оба события.

Обработчик CustomerActivatedEvent загрузит клиента и обновит таблицу «active_users» через CustomerRepository (или ActiveCustomersRepository?) На основе данных в CustomerActivatedEvent.

ответ

0

No.

обработчиков событий вашего чтения стороны являются те, ответственными за обновление, что вы называете Readmodels, как вы хотите.

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

+0

Я отредактировал мое сообщение о том, как поток должен быть, можете ли вы подтвердить, что это правильно? – Oli