gpt4 book ai didi

domain-driven-design - 消息总线服务在领域驱动设计中的位置

转载 作者:行者123 更新时间:2023-12-04 08:21:07 26 4
gpt4 key购买 nike

我正在努力加深对 DDD 的理解。更具体地说,如何通过消息总线处理域事件以进行异步处理。

可以说我有一些架构->

 _____________________
| |
| Client |
|_____________________|
|
__________|__________
| |
| Application Service |
|_____________________|
|
__________|__________
| |
| Domain |
|_____________________|

当我的域引发一些域事件时,我如何获得该事件
到 RabbitMQ 等消息传递服务?

我的第一个想法是注入(inject)一个消息总线服务,IMessageBus,
知道如何将事件发送到 RabbitMQ。该服务将被使用
通过域事件处理程序将事件分派(dispatch)到总线。

但后来我想,现在我的域必须知道如何处理自己的事件。

有人可以对此事有所了解吗?

最佳答案

服务总线是基础设施的一部分,但是应用程序服务知道它(作为抽象)。可以将总线注入(inject)到应用服务中,因为应用服务不包含域逻辑,而是充当业务用例的协调者和宿主。

But then I thought, now my domain has to know how to handle its own events.



是的,但是总线只传递消息,消息处理程序基本上是应用程序服务。

Rabbit 和其他人是一个实现细节,您的应用程序处理程序应该由服务总线调用(它应该抽象实际的消息传递过程)。

关于domain-driven-design - 消息总线服务在领域驱动设计中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36535509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com