具有事件溯源的领域模型

Domain Model with Event Sourcing

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

我有(当然是事件总线)和

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

听起来您在命令处理程序中可能做的有点太多了。需要明确的是——命令处理程序的作用是接收命令、加载适当的聚合并将命令发送到聚合中。最后,它获取聚合可能生成的任何事件,将它们持久化并最终发布它们。这是我博客上的图表。

要更全面地逐步了解典型的 CQRS + ES 应用程序,请查看我的 post:CQRS + Event Sourcing - A Step by Step Overview

我希望这能为您解决一些问题。 PS。您可能想看看如何为 CQRS 和 ES 创建聚合根。可以发现 post here

EventSourcing 很简单,您可以选择如何存储应用程序的状态。如果您不是在解决特定问题,您可能不需要领域模型,只需创建一个简单的 CRUD application. A domain model is a simplified abstraction of the domain in wich your application is solving a specific business problem. The domain model is tool for communicating between you and your team mates and the domain experts. I would recommend reading this excellent book, or downloading this 领域驱动设计的简短介绍。

你不知道。

领域驱动设计是关于使用领域专家普遍使用的语言对软件进行建模。该模型 可以 成为 'relational' 模型,但它同样可以成为命令和事件的模型。

a recent interview 中,Eric Evans 解释说他希望不再强调战术模式(聚合根、存储库、抽象工厂)等,而是强调建模方法 - 例如限界上下文

他还解释了 CQRS + 事件溯源如何让 DDD 焕然一新。在许多方面,战术模式是过去的残余,在过去一切都必须是 OOP 和底层关系数据库才能被认真对待。那是过去,但现在是。