В CQRS (при условии, что у вас есть такая система) при транзакциях с корнем агрегата вам нужно состояние агрегата, чтобы принять решение для сохранения инвариантов.
Что касается чтения, то типичным шаблоном является проецирование / денормализация / индексирование данных в зависимости от ситуации, чтобы облегчить запросы по мере необходимости.
Так, как правило, вы будете отслеживать проекцию каждого события и индекс на основе OwnerId
для облегчения запроса. Если это только для целей поиска, чтобы запустить какую-то команду обработки решения, это может быть так же просто, как сопоставление OwnerId
с принадлежащим CartIds
.
Вы не предоставили много контекста; это зависит от того, пытаетесь ли вы создать систему истории заказов или доставку и т. д. Скорее всего, вы получите хороший ответ на любой дополнительный вопрос, если объясните больше о том, чего вы пытаетесь достичь в целом