聚集体内的实体是否可以移动到轴突中的另一个聚集(相同类型)

问题描述 投票:1回答:1

假设我们使用事件源和带有ForwardMatchingInstances的AggregateMember,拥有一个聚合类A,一个实体类B和一个实体类C。

已创建两个集合A,其ID为aId1和aId2。

我们发送了一个命令,将一个类别为B的新实体添加到id为bId1的aId1中>

我们发送命令将类B的新实体添加到id为bId2的aId1中>


现在由于某种原因,我们希望将一个实体移到另一个聚合,因为业务逻辑对于类型B的实体具有特定的逻辑(与C相同)。


轴突可以支持吗? ->我们可以移动实体bId1来聚合aId2,而无需更改bId1(保持相同的ID,只移动聚合)。

为此,我将使用一个传奇来确保:

  • 首先检查bId1是否可以移动到aId2,将发出一个事件(如ReservedXXXEvent)
  • Saga向aId1发送命令以从aId1中删除bId1,aId1发出事件
  • Saga等待事件,然后向aId2发送命令以添加bId1,aId2发出事件,然后saga结束

  • 对于本应转到aId1并对bId1执行操作的待处理命令会发生什么? (因为现在不存在了?)

    更改后,bId1的新命令是否发送到聚合aId2(bId1现在位于具有相同实体ID的聚合aId2中?

[假设我们使用事件源和带有ForwardMatchingInstances的AggregateMember,则具有聚合类A,实体类B和实体类C。创建了2个集合A,其ID为aId1和...

java events cqrs axon
1个回答
0
投票

我认为是回答问题的唯一方法:

轴突可以支持吗? ->我们可以移动实体bId1来聚合aId2,而无需更改bId1(保持相同的ID,只移动聚合)。

© www.soinside.com 2019 - 2024. All rights reserved.