Получение агрегата по другому свойству, чем ID в Prooph

Как проще всего получить агрегат из хранилища агрегатов, не зная его идентификатора, но зная другое уникальное свойство? Например у меня Cart который имеет идентификатор как AggregateId и ownerId как другое имущество.

1

Решение

В CQRS (при условии, что у вас есть такая система) при выполнении транзакции с корнем агрегата вам нужно состояние агрегата, чтобы принять решение для сохранения инвариантов.

Что касается чтения, типичным шаблоном является проецирование / денормализация / индексирование данных в зависимости от обстоятельств, чтобы облегчить запросы по мере необходимости.

Таким образом, как правило, у вас будет проекция отслеживать каждое событие и индекс на основе OwnerId чтобы облегчить запрос. Если это только для целей поиска, чтобы запустить некоторую команду обработки решения, это может быть так же просто, как карта OwnerId в собственности CartIds,


Вы не предоставили много контекста; это зависит от того, пытаетесь ли вы создать систему истории заказов или доставку и т. д. Скорее всего, вы получите хороший ответ на любой дополнительный вопрос, если объясните больше о том, чего пытаетесь достичь в целом.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector