限界上下文中的独立消息系统

Separate Messaging system Inside Bounded Context

运行 为限界上下文中的内部领域事件建立一个单独的消息系统是一个好习惯吗?或者最好重用公共的,它被所有有界上下文监听? 查看图片以更好地理解问题:

选项一(适用于所有上下文的通用 RAbbitMq:

选项二(每个 BC 的单独 RabbitMq):

我认为第一种方法是完全有效的。有界上下文是抽象,用于封装与业务的一个上下文相关的域或业务逻辑,但是消息系统只是为了促进这些解耦和封闭的有界上下文之间的通信而存在的一部分,因此,我认为共享一个独特的消息代理通过多个有界上下文是正确的。此外,通过这种方式,您的开销和延迟会更少