You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 3.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <!--
  2. Licensed to the Apache Software Foundation (ASF) under one or more
  3. contributor license agreements. See the NOTICE file distributed with
  4. this work for additional information regarding copyright ownership.
  5. The ASF licenses this file to You under the Apache License, Version 2.0
  6. (the "License"); you may not use this file except in compliance with
  7. the License. You may obtain a copy of the License at
  8. http://www.apache.org/licenses/LICENSE-2.0
  9. Unless required by applicable law or agreed to in writing, software
  10. distributed under the License is distributed on an "AS IS" BASIS,
  11. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. See the License for the specific language governing permissions and
  13. limitations under the License.
  14. -->
  15. # Seata-go: Simple Extensible Autonomous Transaction Architecture(Go version)
  16. [![CI](https://github.com/apache/incubator-seata-go/actions/workflows/license.yml/badge.svg)](https://github.com/apache/incubator-seata-go/actions/workflows/license.yml)
  17. [![license](https://img.shields.io/github/license/apache/incubator-seata-go.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
  18. [简体中文 ZH](./README_ZH.md)
  19. ## What is seata-go?
  20. 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](https://seata.apache.org/) to view the quick start and documentation.
  21. 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:
  22. ![](https://user-images.githubusercontent.com/68344696/145942191-7a2d469f-94c8-4cd2-8c7e-46ad75683636.png)
  23. ## TODO list
  24. - [x] TCC
  25. - [x] XA
  26. - [x] AT
  27. - [x] Insert SQL
  28. - [x] Delete SQL
  29. - [x] Insert on update SQL
  30. - [x] Multi update SQL
  31. - [x] Multi delete SQL
  32. - [x] Select for update SQL
  33. - [x] Update SQL
  34. - [ ] SAGA
  35. - [x] TM
  36. - [x] RPC communication
  37. - [x] Transaction anti suspension
  38. - [x] Manually way
  39. - [x] Proxy datasource way
  40. - [x] Null compensation
  41. - [x] Configuration center
  42. - [x] Configuration file
  43. - [x] Registration Center
  44. - [ ] Metric monitoring
  45. - [x] Compressor algorithm
  46. - [x] Examples
  47. ## How to run?
  48. if you want to know how to use and integrate seata-go, please refer to [apache/seata-go-samples](https://github.com/apache/incubator-seata-go-samples)
  49. ## How to join us?
  50. 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**](./CONTRIBUTING_CN.md) document to understand the specifications of the community, or you can join our community DingTalk group: 33069364 and communicate together!
  51. ## Licence
  52. Seata-go uses Apache license version 2.0. Please refer to the license file for more information.