首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Axon框架-如何实现上下游上下文设计

Axon框架-如何实现上下游上下文设计
EN

Stack Overflow用户
提问于 2019-05-03 21:38:20
回答 1查看 286关注 0票数 0

使用Axon如何实现域与子域之间的上下游DDD。

我们如何让订单代理监听发货子域事件。

https://axoniq.io/blog-overview/bounded-contexts-with-axon

EN

回答 1

Stack Overflow用户

发布于 2019-05-04 01:59:47

简短的答案是Saga,类似于:https://github.com/idugalic/digital-restaurant/blob/master/drestaurant-libs/drestaurant-order/src/main/kotlin/com/drestaurant/order/domain/OrderSaga.kt#L104

长长的答案是:这两个服务都公开了消息传递API (可以发送的命令,可以发送的查询,可以订阅的事件)。在本例中,订单服务依赖于送货服务。两个服务都实现了子域模型(Order不是一个完整的域,它可能是一个core / more important子域)。订单域负责创建order并在流程中验证此订单。发货负责交付订单,他们称之为发货。在航运上下文中,我们对订单及其内容的细节不感兴趣,我们最感兴趣的是发货地址。

我在上一节中提到的order saga可以处理来自shipping/courier服务的com.drestaurant.courier.domain.api.CourierOrderDeliveredEvent事件,并调用Order服务上的命令来更新订单聚合的状态。需要注意的是,在本例中,我们将消息作为类共享到JAR文件中。您应该考虑仅共享/记录消息的模式(例如JSON),并在依赖的服务中拥有此API类的副本(不依赖于其他服务的公共API模块/jars)。这样,您就可以依赖于消息的序列化,并且您可以自由地在不同的服务中拥有此消息/类的略微不同的副本(例如,您不必在另一端反序列化消息的所有属性-您可以选择)。这将使您的服务能够更独立地部署,因为它们不会共享任何模块/jar之类的东西。

我必须承认,从DDD讨论概念并不总是那么容易,而且它们总是与上下文相关。尽管如此,我希望这个答案能让你更好地理解你的问题。填写free可进一步讨论此主题。

最好的,伊凡

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55970991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档