用Kafka向传奇发表信息的正确方法是什么?

5jdjgkvh  于 2021-06-05  发布在  Kafka
关注(0)|答案(0)|浏览(244)

我正在设计一个使用cqrs模式的库。我使用中提到的方法将saga视为聚合https://blog.jonathanoliver.com/cqrs-sagas-with-event-sourcing-part-i-of-ii/.
在这里,我有一个关于如何实现saga订阅的消息传递的问题。
假设我在应用程序中有两个聚合,account和moneytransfersaga。transfermoney命令将触发moneysent事件以减少帐户余额。moneysent事件将触发moneytransfersaga的创建,moneytransfersaga将receivemoney命令发送到另一个帐户以增加帐户余额。
所以,我们可以看到moneytransfersaga正在订阅moneysent事件。我想问的问题是,什么是正确的方式发送这个钱送事件的传奇?
我使用kafka作为消息代理,这里我有主题account命令和account聚合的account事件。
方法a:将moneytransfersaga标记为订阅“account events”主题的另一个消费者组。当即将到来的事件与类型“moneysent”匹配时,触发saga事件处理程序。saga事件处理程序将忽略其他事件。
方法b:创建一个名为“资金转移传奇事件”的主题。当事件被发送到account events时,account事件处理程序将事件复制到主题“money transfer saga events”。moneytransfersaga订阅的主题是“moneytransfersaga事件”,而不是“account事件”。
我不确定哪种方法更好。
使用方法a,saga示例将从account接收所有事件。
使用方法b,账户服务必须知道moneytransfersaga的存在。
谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题