【问题标题】:Accessing an aggregate from another aggregate in an Event Sourcing Microservice architecture based on Domain Driven Design在基于领域驱动设计的事件溯源微服务架构中从另一个聚合访问聚合
【发布时间】:2019-06-03 16:56:59
【问题描述】:

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

我们如何通过事件溯源来解决这个问题。我的意思是在资产和收入聚合的 Profile 服务中保持本地商店更新是一种好习惯吗?如果是这样,那么我们需要解决最终的一致性问题。还有另一种方法吗?

【问题讨论】:

  • 如果你不做事件溯源,你会怎么做?

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


【解决方案1】:

在您的应用服务中使用一个事务并将三个聚合保存在三个不同的存储库中,这样您就可以确保一致性。我假设它们都在同一个容器中。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2013-09-16
    • 2019-07-13
    • 2011-04-26
    • 1970-01-01
    相关资源
    最近更新 更多