具有事件溯源的域模型

Jef*_*eff 2 .net design-patterns event-driven-design cqrs event-sourcing

愚蠢的问题......但是如果我使用事件源,为什么我还需要域模型。

我有(当然是事件总线)并且

  • 具有业务操作的应用程序服务,每个服务在基本验证后发送命令
  • 接收命令的命令处理程序执行额外的命令验证并发布事件
  • 事件处理程序处理事件、更新读取模型并将事件存储在存储库(事件源)中
  • 提供读取模型的读取模型服务
  • 前端(UI 或其他)使用读取模型服务中的读取模型)...并利用应用程序服务进行业务运营。

为什么我需要聚合根和域实体?附加层的作用是什么?

Mar*_*ann 6

你不知道。

领域驱动设计是指使用领域专家普遍使用的语言对软件进行建模。该模型可以是“关系”模型,但它也可以是命令和事件的模型。

最近的一次采访中,Eric Evans 解释说,他希望不再强调战术模式(聚合根、存储库、抽象工厂)等,而是强调建模方法 - 例如有界上下文

他还解释了 CQRS + 事件溯源如何让 DDD 焕然一新。在很多方面,战术模式都是过去的残余,在过去,一切都必须是面向对象的,并且具有底层关系数据库才能得到认真对待。那是那时,但现在是这样。