首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DDD -从另一个微服务中保存数据

DDD -从另一个微服务中保存数据
EN

Stack Overflow用户
提问于 2022-01-19 15:34:51
回答 1查看 151关注 0票数 0

我在一家拥有多家其他公司的公司工作(每个公司都有自己的应用程序),我们开始集中一些数据,例如,现在我们有了一项服务,为每一家公司共享客户数据,让我们命名为CustomerService。

我正在工作的项目使用一个订阅模型,客户可以订阅健康保险计划,并且只能有一个活动计划(让我们称之为HealthInsuranceService)。

我们必须显示客户在生态系统的一些应用中订阅了哪些计划,例如,我们有一个药店应用程序,我们必须在药店应用程序的客户简介中显示这个客户的计划。就DDD而言,哪个选项更好?

  1. 将planId保存在CustomerService中,这样每个应用程序都可以访问我们的planId。我在这里看到了一些缺点,例如,如果我们允许每个服务将其数据存储到CustomerService中,那么它将随着仅用于某些应用程序的数据而增长。
  2. 保存planId并使用事件驱动将一些客户数据缓存到HealthInsurance中。每一个需要这些信息的应用程序都必须从这个服务中调用一个端点来检索planId。这里的缺点是,它将是在药店应用程序和每个需要这些数据的应用程序中获取planId.
  3. Cache planId (通过事件驱动)的另一个请求。
  4. 使用api网关,该网关将用于所有应用程序,用于合并来自customerService的客户数据和计划来自customerService的数据。

我们还有更好的选择吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-20 16:01:55

从严格的DDD的角度来看,所有这些在本质上都没有一个比其他人更糟糕。选择哪一个取决于什么对问题很重要。

选项3可能是我倾向于追求的(基本上是CQRS),是为了确保服务的自主性,但这种自主性需要更宽松的一致性保证(也就是说,对保险计划的更改可能不会立即出现在药店应用程序中)。另一方面,如果需要更强的一致性保证,则备选案文3几乎肯定是这4种选择中最糟糕的一种。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70773376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档