分布式域驱动设计资源

问题描述 投票:0回答:2

我对开发 DDD 应用程序非常有信心,但持续给我带来问题的一个领域是两个应用程序相互集成时。我正在努力寻找有关该主题的任何有用的书籍或资源。 Patterns of EAI 等书籍深入探讨了消息传递模式和消息构造,但并未真正解释如何构建利用这些模式的系统。

我进行了广泛的搜索,我很确定没有示例应用程序可以演示如何集成两个系统。我了解异步消息传递的概念,但再次找不到如何应用它的好示例。

SOA 资源似乎不断重复相同的概念,但没有演示如何实现它们,而且往往更关心向我推销产品。

以下是我很难回答的问题:

  1. 每个应用程序都应该有自己的数据副本吗?例如,组织内的每个应用程序是否应该有自己的客户端列表,并在收到消息后更新该列表?

  2. 消息在 DDD 堆栈中的哪个点传递?它们是领域事件的结果吗?

  3. 我可以将异步消息传递和 WCF 结合起来还是必须进行选择?我是否使用 WCF 进行请求/响应并使用消息传递进行发布/订阅?

  4. 一个 DDD 应用程序如何使用另一个 DDD 应用程序的服务?一个 DDD 应用程序应该通过其应用程序服务查询另一个系统的数据,还是应该已经拥有自己的本地数据副本(如第 1 点中所述)?

  5. 显然我无法跨两个系统进行交易。我该如何避免这种情况?

如果我听起来很困惑,那是因为我确实很困惑。我不是在寻找上述问题的答案,只是指出可以回答这个问题和类似问题的资源方向。

domain-driven-design soa distributed messaging dddd
2个回答
9
投票

我也一直在进行类似的转变。我的建议:

  • http://cqrsinfo.com/ 开始。
  • 收听分布式播客
  • 观看 Greg Young 的任何演讲。例如,此处是埃里克·埃文斯 (Eric Evans) 采访格雷格 (Greg)。他还录制了一些全天的课程。
  • 阅读/收听 Udi Dahan 的任何内容(播客、讲座、文章等)。他在 InfoQ 上有一些好东西。
  • 等待格雷格的书
  • 阅读有关 EDA(事件驱动架构)的所有内容。

3
投票

除了Eric Farr所说的之外,可能还值得仔细阅读DDD书(战略设计)的第4部分。它没有从“分布式”角度解决问题,但提供了大量有关如何集成应用程序的信息(有界上下文)。在应用程序边界进行设计时,像Anticorruption Layer这样的模式非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.