the ability to automatically run unit tests after creating a pull request.  (#764)

* feat: add unit test workflow

* feat:the ability to automatically run unit tests after creating a pull request.

* feat:the ability to automatically run unit tests after creating a pull request.

* feat:the ability to automatically run unit tests after creating a pull request.

* feat:the ability to automatically run unit tests after creating a pull request.

* feat:the ability to automatically run unit tests after creating a pull request.

* feat:the ability to automatically run unit tests after creating a pull request.

* Optimize/at build lock key performance  (#837)

* Refer to buildlockkey2 optimization #829

* Time complexity O(NM)-> O(NK) about buildlockkey and buildlockkey2  Increased readability  #829

* update import sort #829

* update Encapsulation into util packages #829

* Support Update join (#761)

* duplicate image row for update join

* update join condition placeholder param error

* update join bugfix

* Open test annotations

* recover update executor

* recover update test

* recover update test

* modified version param

---------

Co-authored-by: JayLiu <38887641+luky116@users.noreply.github.com>
Co-authored-by: FengZhang <zfcode@qq.com>

---------

Co-authored-by: jimin <slievrly@163.com>
Co-authored-by: JayLiu <38887641+luky116@users.noreply.github.com>
Co-authored-by: FengZhang <zfcode@qq.com>
Co-authored-by: Wiggins <125641755+MinatoWu@users.noreply.github.com>
Co-authored-by: lxfeng1997 <33981743+lxfeng1997@users.noreply.github.com>
10 files changed
tree: 45a5fdeab2d5c856c61311b97e4d3d0a7060022e
  1. .github/
  2. changes/
  3. cmd/
  4. licenses/
  5. pkg/
  6. testdata/
  7. .asf.yaml
  8. .gitignore
  9. .golangci.yml
  10. .licenserc.yaml
  11. .pre-commit-config.yaml
  12. CONTRIBUTING.md
  13. CONTRIBUTING_CN.md
  14. DISCLAIMER
  15. go.mod
  16. go.sum
  17. goimports.sh
  18. integrate_test.sh
  19. LICENSE
  20. makefile
  21. NOTICE
  22. README.md
  23. README_ZH.md
README.md

Seata-go: Simple Extensible Autonomous Transaction Architecture(Go version)

CI license

简体中文 ZH

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

  • [x] TCC
  • [x] XA
  • [x] AT
    • [x] Insert SQL
    • [x] Delete SQL
    • [x] Insert on update SQL
    • [x] Multi update SQL
    • [x] Multi delete SQL
    • [x] Select for update SQL
    • [x] Update SQL
  • [ ] SAGA
  • [x] TM
  • [x] RPC communication
  • [x] Transaction anti suspension
    • [x] Manually way
    • [x] Proxy datasource way
  • [x] Null compensation
  • [x] Configuration center
    • [x] Configuration file
  • [x] Registration Center
  • [ ] Metric monitoring
  • [x] Compressor algorithm
  • [x] 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.