Awesome
Seata-go: Simple Extensible Autonomous Transaction Architecture(Go version)
What is seata-go?
Apache Seata(incubating) is a very mature distributed transaction framework, and is the de facto standard platform for distributed transaction technology in the Java field. Seata-go is the implementation version of go language in Seata multilingual ecosystem, which realizes the interoperability between Java and Go, so that Go developers can also use seata-go to realize distributed transactions. Please visit the official website of Seata to view the quick start and documentation.
The principle of seata-go is consistent with that of Seata-java, which is composed of TM, RM and TC. The functions of TC reuse Java, and the functions of TM and RM will be aligned with Seata-java later. The overall process is as follows:
TODO list
- 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 communication
- Transaction anti suspension
- Manually way
- Proxy datasource way
- Null compensation
- Configuration center
- Configuration file
- Registration Center
- Metric monitoring
- Compressor algorithm
- Examples
How to run?
if you want to know how to use and integrate seata-go, please refer to apache/seata-go-samples
How to join us?
Seata-go is currently in the construction stage. Welcome colleagues in the industry to join the group and work with us to promote the construction of seata-go! If you want to contribute code to seata-go, you can refer to the code contribution Specification document to understand the specifications of the community, or you can join our community DingTalk group: 33069364 and communicate together!
Licence
Seata-go uses Apache license version 2.0. Please refer to the license file for more information.