我最近熟悉DDD并尝试掌握关键概念,我有一个查询,包括为本地订阅者发布域事件,所以我可以假设事件发布者,负责发布到远程订阅者通过AQMP同时利用observable将其发布给本地订阅者,这是一个可扩展的解决方案吗?或者是否有一个熟悉的模式来处理这个问题?(还建议如果有一个反应性的解决方案,可能是RxJava或类似的)
答案 0 :(得分:3)
本地或远程订阅者的位置应该对提升发布活动的域实体完全透明。
您的想法与我使用的设计非常相似。我使用了一个非常原始的本地事件发布者版本,它通过消息中间件(AMQP将事件传播给所有其他本地发布者)进行通信。
我不是用Java做的,但事实上,对于本地活动" bus"我使用Rx.Net(反应式扩展在所有语言中都有一个几乎相同的API,所以RxJava可以工作)
带有事务支持的简化版本将如下所示:
Explain
添加远程功能将添加另一个订阅者,该订阅者将订阅所有事件并将其路由到其他本地EventHub,还可以侦听其他eventhub并在本地集线器上发布其事件。它不会改变EventHub组件。