如何使用Sagas在Nest.js中的微服务架构中实现补偿交易

时间:2020-08-23 04:07:16

标签: node.js microservices nestjs cqrs saga

最近,我对微服务,CQRS和事件源非常感兴趣,并且我一直在使用Nest.js练习一些概念,这些概念已经实现了其中某些功能。但是我对如何实现微服务之间的补偿交易有很大的疑问。

例如,我有一个OrderCreated事件,该事件触发在多个微服务之间分布的事务处理过程,如果发生OrderCancelled事件,则需要执行将应用重要事务的命令。问题是,如果我理解正确,Nest.js在内存中实现了Sagas,并且我了解到Sagas应该是一种应保留的聚合,以防万一此微服务出现故障并可以重新启动,当此微服务再次开始运行时,它将恢复现有的Sagas并从中断处继续执行该过程。

无论如何,关于sagas的编排这一部分对我来说还不是很清楚,我很想了解更多有关它的内容,如果有人可以向我展示或至少给我提供指导,我将非常兴奋。用Nest完成此操作。 js(如果可能的话,可以使用他已经拥有的Saga机制来做到这一点),或者使用RxJs之类的东西,或者将我指向一本他可以对该主题有更多了解的书。

我发现在Kotlin生态系统中,有一个名为Axon的框架,该框架实现了许多与Sagas相关的事情,但是我真的很想在Node.js中使用某些东西(如果可能的话在Nest.js中使用),因为我没有知识/经验与Kotlin一起了解所有这些功能,尤其是在涉及建筑方面。

如果有人可以帮助我,我将非常感激。

0 个答案:

没有答案