【问题标题】:Aggregates in CQRSCQRS 中的聚合
【发布时间】:2013-12-05 05:21:13
【问题描述】:

什么是聚合以及它们如何在 CQRS(命令-查询-职责-隔离)和 ES(事件溯源)中使用?我是这种架构的新手,如果有人可以向我解释这一点,我会非常高兴。谢谢!

【问题讨论】:

标签: domain-driven-design cqrs aggregateroot


【解决方案1】:

首先我想引用Martin Fowler's blog post on CQRS 并注意聚合与领域驱动设计相关,然后与 CQRS 相关

CQRS 自然适合其他一些架构模式。

  • 当我们远离通过 CRUD 与之交互的单一表示时, 我们可以轻松迁移到基于任务的 UI。
  • 与命令模型的交互自然落入命令或事件中, 与Event Sourcing 非常吻合。
  • 拥有单独的模型会引发关于保留这些模型有多难的问题 一致,这提高了使用 eventual consistency 的可能性。
  • 对于许多域,更新时需要很多逻辑, 所以使用EagerReadDerivation 来简化可能是有意义的 您的查询端模型。
  • CQRS 适用于复杂领域,这种领域也受益于 Domain-Driven Design

就领域驱动设计而言,聚合是实体和值对象的逻辑组,它们被视为一个单元 (OOP, Composition)。聚合根是所有其他实体都绑定到的单一实体。

【讨论】:

    猜你喜欢
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2019-08-13
    • 2019-03-24
    相关资源
    最近更新 更多