这个问题是相关的,但比这个问题更具体。
我将在这里使用一个简单的例子。假设我们User
在一个上下文中有一个Customer
实体,在另一个上下文中有一个实体。这是同一实体的两种不同表示。
假设User
和Customer
都有一个电子邮件地址,但电子邮件地址总是通过User
所属的有界上下文更改。因此,用户上下文是电子邮件地址的真实来源。所以理想情况下,我希望上下文中的电子邮件地址从客户上下文的角度来看Customer
是不可变的。
因此,当在用户上下文中更改电子邮件地址时,EmailAddressChanged
会发出一个事件。这可以; 我订阅了Customer
上下文中的事件。但是,我现在需要通过更改Customer
电子邮件地址来处理此事件。所以我需要某种命令方法来进行这种改变。
User
除了从上下文处理事件时,如何确保不使用命令方法?
如果我在两种情况下都允许突变,那么它们都会成为事实的来源,我需要将事件和处理程序的数量增加一倍,以确保信息在两种情况下保持一致