2013-12-05 4 views
2

Что такое агрегаты и как они используются в CQRS (Command-Query-Responsibility-Segregation) и ES (Event-Sourcing)? Я новичок в этой архитектуре, и я был бы очень рад, если бы кто-нибудь мог объяснить это мне. Благодаря!Агрегаты в CQRS

+1

Один маленький поиск CQRS и Event Sourcing ответит на ваш вопрос – MikeSW

+0

Дублирующий вопрос: http://stackoverflow.com/questions/1958621/whats-an-aggregate-root – rad

ответ

4

Сначала я хотел бы процитировать Martin Fowler's blog post on CQRS и отметить, что Агрегаты скорее связаны с Domain Driven Design, а затем с CQRS.

CQRS, естественно, соответствует другим архитектурным узорам.

  • Как мы отойти от одного представления, что мы взаимодействуем с помощью CRUD, мы можем легко перейти к UI на основе задач.
  • Взаимодействие с командной моделью естественно попадает в команды или события, , который хорошо сцепляется с Event Sourcing.
  • Отдельные модели поднимают вопросы о том, как сложно поддерживать эти модели , что повышает вероятность использования eventual consistency.
  • Для многих доменов требуется большая часть логики при обновлении, , поэтому для упрощения может быть целесообразно использовать ваши модели с запросом.
  • CQRS подходит для сложных доменов, которые также извлекают выгоду из Domain-Driven Design.

В терминах Домен-Driven Design Aggregate представляет собой логическая группа лиц и Value объектов, которые рассматриваются как единое целое (OOP, Composition). Агрегатный корень - это единая сущность, к которой привязаны все остальные.

Смежные вопросы