Apache Seata(incubating) 是一个非常成熟的分布式事务框架,在 Java 领域是事实上的分布式事务技术标准平台。Seata-go 是 seata 多语言生态中的 Go 语言实现版本,实现了 Java 和 Go 之间的互通,让 Go 开发者也能使用 seata-go 来实现分布式事务。请访问Seata 官网查看快速开始和文档。
Seata-go 的原理和 Seata-java 保持一致,都是由 TM、RM 和 TC 组成,其中 TC 的功能复用 Java 的,TM 和 RM 功能后面会和 Seata-java 对齐,整体流程如下:
- TCC
- XA
- AT
- Insert SQL
- Delete SQL
- Insert on update SQL
- Multi update SQL
- Multi delete SQL
- Select for update SQL
- Update SQL
- SAGA
- TM
- RPC 通信
- 事务防悬挂
- 手动方式
- 代理数据源方式
- 空补偿
- 手动方式
- 代理数据源方式
- 配置中心
- 配置文件
- 注册中心
- Metric 监控
- 压缩算法
- Sample 例子
关于如何使用和集成 seata-go 的示例,可以参考 apache/seata-go-samples
Seata-go 目前正在建设阶段,欢迎行业同仁入群参与其中,与我们一起推动 seata-go 的建设!如果你想给 seata-go 贡献代码,可以参考 代码贡献规范 文档来了解社区的规范,也可以加入我们的社区钉钉群:33069364,一起沟通交流!
Seata-go 使用 Apache 许可证2.0版本,请参阅 LICENSE 文件了解更多。