在基于域驱动设计的事件源微服务架构中,从另一个聚合访问一个聚合

时间:2019-06-02 10:27:11

标签: domain-driven-design microservices event-sourcing eventual-consistency

假设我们有三个汇总,资产(一个用户的资产),收入(包含用户的收入来源)和配置文件(包含与管理用户配置文件有关的实体和值)。现在,可以通过收入更改或资产更改来更新用户个人资料状态。但是这很重要,任何更改都应同时考虑资产和收入,为此,Profile服务需要跟踪资产和收入。

我们如何通过活动来源解决这一问题。我的意思是,在Profile Service中为资产和收入汇总更新本地商店是一种好习惯吗?如果是这样,那么我们需要解决最终的一致性问题。还有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

在应用程序服务中使用事务,并将三个聚合保存在三个不同的存储库中,以确保一致性。我认为它们都在同一个容器中。

如果您要谈论最终的一致性,那么情况可能并非如此,因此,如果它们属于不同的有界上下文,则可以在接收方BC上实现侦听器(入站端口适配器),该侦听器最终将更新聚合以响应这个事件。