Distributed transaction solutions
Go to file
2023-10-24 14:56:21 +08:00
.github update 2023-02-02 17:57:20 +08:00
hmily-annotation Customized global lock retry interval and lock retry times and optimize lock retry mechanism. (#370) 2023-10-24 14:56:21 +08:00
hmily-bom 1. modify version to 12.1.3-SNAPSHOT (#343) 2022-12-23 22:45:41 +08:00
hmily-common 1. modify version to 12.1.3-SNAPSHOT (#343) 2022-12-23 22:45:41 +08:00
hmily-config Customized global lock retry interval and lock retry times and optimize lock retry mechanism. (#370) 2023-10-24 14:56:21 +08:00
hmily-core Customized global lock retry interval and lock retry times and optimize lock retry mechanism. (#370) 2023-10-24 14:56:21 +08:00
hmily-demo 1.在HmilyTac注解增加isolationLevel属性, 用来确定tac模式下的隔离级别, 默认为read_uncommitted。执行select SQL时, 根据隔离级别判断是否需要checkLocks。 (#366) 2023-10-24 14:56:15 +08:00
hmily-metrics 1. modify version to 12.1.3-SNAPSHOT (#343) 2022-12-23 22:45:41 +08:00
hmily-repository 实现全局锁在 zookeeper下的持久化, 完善 ZookeeperRepository 的相关方法, 并编写相关测试用例 (#362) 2023-10-24 14:56:09 +08:00
hmily-rpc 1. modify version to 12.1.3-SNAPSHOT (#343) 2022-12-23 22:45:41 +08:00
hmily-serializer 1. modify version to 12.1.3-SNAPSHOT (#343) 2022-12-23 22:45:41 +08:00
hmily-spi 1. modify version to 12.1.3-SNAPSHOT (#343) 2022-12-23 22:45:41 +08:00
hmily-spring 1. modify version to 12.1.3-SNAPSHOT (#343) 2022-12-23 22:45:41 +08:00
hmily-spring-boot-starter 1. modify version to 12.1.3-SNAPSHOT (#343) 2022-12-23 22:45:41 +08:00
hmily-tac Customized global lock retry interval and lock retry times and optimize lock retry mechanism. (#370) 2023-10-24 14:56:21 +08:00
hmily-tcc add metrics 2023-01-05 18:18:41 +08:00
hmily-xa add metrics 2023-01-05 18:57:04 +08:00
script Update license header (#315) 2021-06-07 16:52:14 +08:00
.gitattributes gitattributes 2018-12-12 19:28:23 +08:00
.gitignore remove hmily-admin 2020-08-10 11:44:31 +08:00
LICENSE fix license file (#304) 2021-05-21 15:43:41 +08:00
pom.xml update 2023-02-02 17:57:20 +08:00
README_CN.md Update document invalid path (#297) 2021-05-06 11:26:52 +08:00
README.md Update document invalid path (#297) 2021-05-06 11:26:52 +08:00

Financial-level flexible distributed transaction solution

https://dromara.org/

English | 简体中文

gitee stars github forks github stars github contributors



Panorama of distributed transaction solutions


Features

  • high reliability :supports abnormal transaction rollback in distributed scenarios, and abnormal recovery over time to prevent transaction suspension

  • usability :provide zero-invasive Spring-Boot, Spring-Namespace to quickly integrate with business systems

  • high performance :decentralized design, fully integrated with business systems, naturally supporting cluster deployment

  • observability :metrics performance monitoring of multiple indicators, and admin management background UI display

  • various RPC : support Dubbo, SpringCloud, Motan, Sofa-rpc, brpc, tars and other well-known RPC frameworks

  • log storage : support mysql, oracle, mongodb, redis, zookeeper etc.

  • complex scene : support RPC nested call transaction


Necessary premise

  • must use JDK8+

  • TCC mode must use a RPC framework, such as: Dubbo, SpringCloud, Montan


TCC mode

when using the TCC mode, users provide three methods: try, confirm, and cancel according to their business needs. And the confirm and cancel methods are implemented by themselves, and the framework is only responsible for calling them to achieve transaction consistency。


TAC mode

When the user uses the TAC mode, the user must use a relational database for business operations, and the framework will automatically generate a rollback SQL, When the business is abnormal, the rollback SQL will be executed to achieve transaction consistency。


Documentation

EN doc

CN doc

If you want to use it, you can refer to Quick Start

About Hmily

Hmily is a flexible distributed transaction solution that provides TCC and TAC modes。

It can be easily integrated by business with zero intrusion and rapid integration。

In terms of performance, log storage is asynchronous (optional) and asynchronous execution is used, without loss of business methods。

It was previously developed by me personally. At present, I have restarted at JD Digital. The future will be a distributed transaction solution for financial scenarios.。


Follow the trend

Stargazers over time


User wall

Support