
使用Axon如何实现域与子域之间的上下游DDD。
我们如何让订单代理监听发货子域事件。
发布于 2019-05-04 01:59:47
长长的答案是:这两个服务都公开了消息传递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可进一步讨论此主题。
最好的,伊凡
https://stackoverflow.com/questions/55970991
复制相似问题