域驱动设计 – CQRS DDD事件采购中的总体间通信
发布时间:2020-12-14 04:31:10 所属栏目:百科 来源:网络整理
导读:在使用事件来源的汇总后端的基于DDD原则的环境中,应如何分离 aggregate roots(AR)? 例如,我有一个设备聚合根(AR),其具有负责创建预订AR的工厂方法。预订是人员AR和设施AR的时间敏感组合。一个人只能在一个设施中预订。 在DDD中,我会参考“个人预订”和
在使用事件来源的汇总后端的基于DDD原则的环境中,应如何分离
aggregate roots(AR)?
例如,我有一个设备聚合根(AR),其具有负责创建预订AR的工厂方法。预订是人员AR和设施AR的时间敏感组合。一个人只能在一个设施中预订。 在DDD中,我会参考“个人预订”和“设施中的人”。然而,当生成用于事件采购的事件时,我认为尝试处理从后端反序列化的事件将变得令人望而却步。因此,我只采取了对基于值对象的唯一标识的引用。这带来了一个新的问题,但是当AR上的一个方法需要在另一个AR上调用另一个方法时 – 如何处理这种情况?从域AR中点击事件源存储库? 在这种情况下的一般用例是什么?我接近这个错了吗?
聚合根边界定义一致性边界。
在总体内,一致性得到保证。 外面…不是 所以你不应该有跨越几个聚合的操作,并且必须一致。 如果您需要跨越两个聚合的事务,则应查看您的聚合边界。 对于在聚合之外发生的事情,您应该有一个事件处理程序将向其他聚合发送命令。如果聚合之间的动作逻辑更加复杂,那么可以定义一个进程,一个状态机,它将侦听事件并发送命令到聚合。流程可用于定义长时间运行的事务(具有补偿而不是回滚),或者基于大规模(即使在有界上下文之间)发生的事情做出业务决策。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |