跨有界上下文拆分聚合

时间:2019-07-09 07:30:58

标签: domain-driven-design microservices

我有一个类似于here的示例:

  

实体的身份可以跨多个微服务或绑定   上下文。

     

相同的标识(即相同的ID值,尽管可能不同)   相同的领域实体)可以跨多个有界建模   上下文或微服务。但是,这并不意味着相同   具有相同属性和逻辑的实体将在   多个有界上下文。相反,每个有界上下文中的实体   将其属性和行为限制为该范围内所需的属性和行为   上下文的域。

     

例如,买方实体可能拥有大多数人的   在个人资料中的用户实体中定义的属性,或   身份微服务,包括身份。但是买方实体   订购微服务可能具有较少的属性,因为仅   某些买家数据与订单流程有关。的上下文   每个微服务或边界上下文都会影响其域模型。

就我而言,我有一个Subscription模型,其中两个不同的有界上下文具有各自的属性。

再往前走,Subscription属于Agency,而Agency只能有一个Subscriptions(不是0,不是很多)。

因此,基于此,我一直在思考聚合ID将是什么。由于SubscriptionAgency具有1-1映射,是否可以使用与Agency相同的ID?

我认为这很有意义,因为Subscription不需要它自己的ID。即使我认为它不会退还给用户,用户也可以通过拥有的Agency ID来引用它。

在这种有限的上下文中,Agency聚合(或其属性)不相关,所以我不认为它们是同一聚合的一部分。

总而言之,如果聚合是1-1映射,则可以共享另一个聚合的ID吗?

1 个答案:

答案 0 :(得分:0)

我不认为实际的实施Id确实很重要。共享标识符应该很好。

这与“在BC之间拆分汇总”有些不同,您肯定会 不想这样做:)

一个BC中的聚合将由id表示或作为另一个BC中的值对象。任何集合的记录系统应该只有一个BC。