Other frameworks
There is no mature open-source distributed transaction framework for non-Java languages. Mature open-source distributed transaction frameworks for Java language include Ali's Seata, Huawei's ServiceComb-Pack, Jingdong's shardingsphere, himly, tcc-transaction, ByteTCC and so on, of which Seata is most widely used.
The following is a comparison of the main features of dtm and Seata.
Features | DTM | Seata | Remarks |
---|---|---|---|
Supported languages | Golang, python, php and others | Java | dtm allows easy access from a new language |
Exception handling | Sub-transaction barrier | manual | dtm solves idempotent transaction, hanging, null compensation |
TCC | ✓ | ✓ | |
XA | ✓ | ✓ | |
AT | ✗ | ✓ | AT is similar to XA with better performance but with dirty rollback |
SAGA | Simple mode | complicated state-machine mode | dtm's state-machine mode is being planned |
Transactional Messaging | ✓ | ✗ | dtm provides Transactional Messaging similar to RocketMQ |
Communication protocols | HTTP, gRPC | Dubbo, no HTTP | |
star count | dtm 0.1 is released from 20210604 and under fast development |
From the features comparison above, if your language stack includes languages other than Java, then dtm is the one for you. If your language stack is Java, you can also choose to access dtm and use sub-transaction barrier technology to simplify your business development.