如何从 ddd 中的另一个有界上下文检索数据?

Kad*_*adu 2 architecture rest domain-driven-design cqrs microservices

最初,有一个应用程序在桌面上运行,但是,该应用程序将来会在网络平台上运行。

应用程序中有一些有界上下文,其中一些需要从另一个上下文中检索数据。在这种情况下,我不知道对于这种情况我必须使用哪种方法。

我想到使用中介模式,即绑定上下文“A”请求数据“X”,然后中介调用另一个绑定上下文,如 B“”,并获取正确的数据“X”。最后,中介将数据“X”带到BC“A”。

当应用程序在 Web 中运行时,这种情况会发生变化,然后我也想到使用微服务从另一个使用 meaditor 模式的微服务请求数据。

这两种方法都有兴趣还是有其他更好的解决方案?

请问有人可以帮我吗?

非常感谢!

All*_*hua 5

如果您通过 DB 或 API 调用从其他有界上下文中检索数据,您的架构可能会陷入死亡之星模式,因为它向客户端上下文引入了不需要的耦合和知识。

更好的方法可能是将事件驱动机制(如 webhooks 或消息队列)视为一种发送您想要共享给订阅上下文的数据的方式。这很好,因为它通过跨上下文的数据复制减少了有界上下文的耦合,从而导致更高的有界上下文独立性。

这给你的感觉是“谁在乎有界上下文 B 是否不可用 ATM,有界上下文 A 和 C 里面有他们需要的数据,我可以稍后恢复同步,因为我的数据更新相关事件记录在我的队列中”