我计划将现有服务从 mongodb 迁移到 neo4j graphdb 以实现持久性。我有使用 mongo 后端的配置文件和订单服务。我的订单域实体引用了 profileId,我使用应用程序代码根据 profileId 加入订单和配置文件。现在如果我选择neo4j,我想避免应用程序代码加入,而是使用neo4j的方式来做简单到复杂的加入要求。现在,问题是我将如何避免在设计中给定配置文件和订单位于 2 个不同的微服务中?当配置文件和订单存在于有界上下文中的 2 个微服务中时,我将如何有效地在 neo4j 中建模并定义它们之间的关系。我是否要复制配置文件和订单实体来定义关系。请帮忙。
例如,像下面这样的场景:
一些业务事务必须强制执行跨越多个服务的不变量。例如,下订单用例必须验证新订单不会超过客户的信用额度。其他业务事务,必须更新多个服务拥有的数据。
一些业务事务需要查询多个服务拥有的数据。例如,View Available Credit 使用必须查询 Customer 以找到 creditLimit 和 Orders 以计算未结订单的总金额。
某些查询必须连接由多个服务拥有的数据。例如,查找特定区域的客户及其最近的订单需要客户和订单之间的连接。
PS。引用自每服务数据库设计模式