SAGA/TCC 就是 WORKFLOW!!!

SAGA TCC 的本质就是一个 workflow, 用 activiti, conductor 或 zeebee 都可以实现. saga, tcc 依赖的状态机模型在 workflow 引擎一直在用, 二者并无本质不同, 并且 workflow 较之更通用.

当然, 专用也有专用的价值. 不管在 tcc 还是 saga, 用几个 annotation 就可以实现事务的串联进行和回滚(引擎会"自动"找到相应的接口), 但对于引擎来说, 完全没有必要诞生专门的 tcc/saga server. 毕竟 workflow 也很常用, 无法幂等的场景也不胜枚举.

来两个例子:

第一个案例是阿里云卖它的 Serverless 时给出的分布式事务解决方案: 分布式多步骤事务

第二个 Using Zeebe’s workflows instead of Sagas in Axon

相关讨论:

https://stackoverflow.com/questions/15528015/what-is-the-difference-between-a-saga-a-process-manager-and-a-document-based-ap

可能 GraphQL 也能达到同样的效果.

posted @ 2020-08-05 18:25  Inshua  阅读(416)  评论(0编辑  收藏  举报