正如我在所学到为什么CQRS库发布事件,而不是事件存储? 它的CQRS库的任务将事件发布。 到现在为止还挺好。
当然,存储事件和发布他们应该是一个单一的事务中。 从技术上讲,这意味着写一个(或多个)记录到存储和发布一个(或多个)事件的消息总线。 因此,一个简单的数据库事务是远远不够的,它应该是一个分布式的一个。
现在,不幸的是,许多NoSQL数据库(如MongoDB的)不支持ACID兼容交易,甚至没有说话的发生在分布式事务的可能性。 更过,有消息队列在那里,不支持分布式事务也是如此。
所以,问题是:我该如何面对呢?
有没有办法使用推荐的模式?