具有复杂类型的CQRS事件

问题描述

所以我在我的应用程序中使用CQRS。现在,我有一个需要在其实现中使用其他模型/类的事件,就像valueObject用于实体一样。

一个简单的例子,我有一个用户事件,这个事件有一个叫做Address的属性,这个地址是AddressModel的类型。

那我应该怎么称呼这个AddressModel? valuObject还是其他?

解决方法

我会选择AddressDpo,其中Dpo代表域有效负载对象。

Model太通用了,绝对不是ValueObject,因为值对象的行为可能会改变事件源投影的重建。事件应该只是数据结构。这是尼克·张伯伦(Nick Chamberlain)的an article

this article中简要提到了DPO。