Domain driven design 在DDD中:产生无人使用的事件的命令
我正在我的项目中应用领域驱动的设计,我遇到了一个场景,在这个场景中,一个用户操作在我的一个有界上下文中转换成一个命令,从而生成一个事件。然而,我发现我的其他有界上下文都不关心消费这个事件。基本上,这个命令所做的就是在我的有界上下文中保存/更新状态 我的问题是:Domain driven design 在DDD中:产生无人使用的事件的命令,domain-driven-design,cqrs,event-driven,event-driven-design,eda,Domain Driven Design,Cqrs,Event Driven,Event Driven Design,Eda,我正在我的项目中应用领域驱动的设计,我遇到了一个场景,在这个场景中,一个用户操作在我的一个有界上下文中转换成一个命令,从而生成一个事件。然而,我发现我的其他有界上下文都不关心消费这个事件。基本上,这个命令所做的就是在我的有界上下文中保存/更新状态 我的问题是: 命令是否必须生成事件 如果是这样的话,没人听有关系吗 命令不一定要生成事件,尽管它更可取。 事件最重要的好处之一是能够从零开始生成特定日期/时间的系统状态。如果您虔诚地为系统中的所有更改冒泡事件,您将能够按顺序应用事件,并使系统达到您的需
事件源
作为持久化策略,那么您所有的状态更改都将是“事件”。但是没有特别的理由你必须在其他地方揭露这件事
是您可能不希望广播某个事件的原因之一
有足够数量的API用户,
无论你在合同中承诺什么:
系统中所有可观察到的行为
会有人依靠的
在你手头有足够的数据做出正确的猜测之前,不要猜测活动中应该包含哪些信息
没人听重要吗
在一个理想的世界里,不是真的——在实践中,成本很可能会成为决策的一部分
命令是否必须生成事件
绝对不是
如果您使用事件源
作为持久化策略,那么您所有的状态更改都将是“事件”。但是没有特别的理由你必须在其他地方揭露这件事
是您可能不希望广播某个事件的原因之一
有足够数量的API用户,
无论你在合同中承诺什么:
系统中所有可观察到的行为
会有人依靠的
在你手头有足够的数据做出正确的猜测之前,不要猜测活动中应该包含哪些信息
没人听重要吗
在一个理想的世界里,不是真的——在实践中,成本很可能会成为决策的一部分
命令是否必须生成事件
不,这不是一个要求,命令只需修改实体的状态,而无需发送事件。正如在其他回复中所说,如果使用事件源,您应该要求每个状态更改生成一个域事件
如果是这样的话,没人听有关系吗
是和否
- 是的,因为没有好的或坏的模型,只有有用的模型,如果没有人在听,那么您的建模对任何人都不是真正有用的
- 否,因为域事件被称为不变量,它们只在业务需求发生变化时反映业务事件和变化,因此它们是API的一部分(请参见发布语言的概念)
- 是的,因为没有好的或坏的模型,只有有用的模型,如果没有人在听,那么您的建模对任何人都不是真正有用的
- 否,因为域事件被称为不变量,它们只在业务需求发生变化时反映业务事件和变化,因此它们是API的一部分(请参见发布语言的概念)