【发布时间】:2015-05-26 05:58:17
【问题描述】:
我的银行核心域分为 2 个不同的有界上下文 BC1 和 BC2。这些 BC 处理非常具体的业务规则和流程(债务追回的定制协议,以及具有法律义务的行政债务)。 BC1 和 BC2 通过 Web 服务从 CRM 访问。客户不能同时拥有自定义协议和债务计划,并且每种情况都排除另一种情况。因此,我们需要协调这两种类型的流程(更准确地说,我们需要在每个 BC 中强制执行双方都允许的操作)。
你会如何编排它们?您是否会在 BC2 域模型中注入一点 BC1 的知识,反之亦然,或者您认为我们应该依赖可以编排系统的第三个 BC(BC3),并且会了解业务知识,并通过例如第三个 WebService ?我们只需要知道客户是否与公司签订了协议,或者是否有正式和合法的债务。
您认为让 BC1 对 BC2 业务“了解一点”是否违反了 DDD 原则?如果是编排器或代理,您会使用 WebServices 还是 SharedKernel ? SharedKernel 与 WebServices 的优缺点是什么?
【问题讨论】:
标签: design-patterns domain-driven-design business-rules