ddd中上游上下文和下游上下文之间的关系

YeKc1M

最近,我了解了ddd,它说两个相关的有界上下文之间的关系是上游和下游。

但是,在一种情况下,A可能在上游而B在下游,而在另一种情况下B可能在上游和下游吗?

但是,如果有可能,我认为这两个有限的上下文是高度耦合的。它们不是独立的业务逻辑。因此,当发生这种情况时,是否意味着我们没有将域正确地划分为有界上下文?

或者我们确实允许两个有界上下文之间进行某种程度的通信,并且如果它们相互调用的API太多,它们实际上是一个有界上下文,但是我们没有正确地划分它。

阿里·索塔尼(Ali Soltani)

上游环境将影响下游对应方,而相反情况可能并非如此。例如,假设有两个微服务与MoneyTransferService一起作为有界上下文NotificationService如果汇款了,通知应发送一封电子邮件给客户,其中包括一些与交易有关的信息。所以MoneyTransferService是上游NotificationService是下游

DDD描述了几种组织模式,可以帮助我们描述和/或管理不同上下文交互的方式。这里最合适的模式称为反腐败层(ACL)。为了在我的示例中遵循此模式,可以使用两个微服务进行通信,Repository layer或者更好的解决方案是发布消息并通过RabbitMQ之类的工具使用它们。通过使用RabbitMQ,这些服务仅取决于消息类型,而无需了解其他信息。

就依赖关系而言,有限上下文之间的交互并不意味着它们之间具有依赖关系,您不必将它们重新设计为有限上下文。

您的目标应该是根据您的领域知识实现最有意义的分离。重点不是规模,而是业务能力。另外,如果基于大量的依赖关系在应用程序的特定区域需要明确的内聚性,那么这也表明需要单个有界上下文。彼此需要彼此完成其业务操作的有限上下文之间的通信没有任何问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根上下文/应用程序上下文和Servlet上下文

来自分类Dev

毕加索和上下文

来自分类Dev

活动上下文和BroadcastReceiver上下文之间的区别

来自分类Dev

WCF,异步和上下文混乱

来自分类Dev

isGooglePlayServicesAvailable的上下文(上下文上下文)

来自分类Dev

执行上下文和((此对象))

来自分类Dev

上下文注入和BeforeFeature挂钩

来自分类Dev

异步和同步上下文

来自分类Dev

Spring Boot和上下文路径

来自分类Dev

TypeScript和“ this”上下文中的KeyListener

来自分类Dev

在上下文之间共享常见的依赖关系

来自分类Dev

设计模式:缓存和上下文

来自分类Dev

执行上下文和词法环境之间有什么区别和关系?

来自分类Dev

绘图上下文和位图

来自分类Dev

上下文敏感张量和词向量之间的区别

来自分类Dev

反应-上下文

来自分类Dev

AWS帐户和绑定上下文

来自分类Dev

voiceimplant的DialogFlow和上下文

来自分类Dev

骆驼上下文和异常分离

来自分类Dev

asyncTask和上下文

来自分类Dev

执行上下文和return语句

来自分类Dev

ClassName.this和上下文类之间是什么关系?

来自分类Dev

上下文注入和BeforeFeature挂钩

来自分类Dev

上下文之间的Spring Integration通信

来自分类Dev

上下文映射-关系

来自分类Dev

scala的执行上下文和播放的执行上下文之间有什么区别

来自分类Dev

原子上下文和进程上下文/中断上下文

来自分类Dev

Vertx 上下文和 Kotlin Couroutine 上下文之间的区别

来自分类Dev

测试之间共享上下文