Distributed transaction framework dtm1.3.1 is released and Postgres support is added


Update log

  • Support for Postgres
  • Add dtmgrpc independent package and examples
  • Refactor the default docker compose configuration for faster startup

Go distributed transaction management service

DTM is the first cross language distributed transaction manager developed by golang, which elegantly solves the distributed transaction problems such as idempotent, null compensation and suspension. It provides a simple, easy-to-use, high-performance and horizontally scalable distributed transaction solution.

Invited to participate in China Database ConferenceDistributed transaction practice in Multilingual Environment

Who is using DTM

Ivydad Ivy Dad

Eglass video coffee mirror sophomore

Polar Europe Technology

[Jinshu Zhilian] ()


  • Easy access

    • It supports HTTP and provides a very simple interface, which greatly reduces the difficulty of starting distributed transactions, and novices can access it quickly
  • Easy to use

    • Developers no longer worry about suspension, null compensation, idempotence and other problems, and the framework layer handles them instead
  • Cross language

    • It can be used by companies with multi language stack. It is convenient to use go, python, PHP, nodejs, ruby and c# various languages.
  • Easy to deploy and expand

    • Relying only on MySQL, it is easy to deploy, cluster and expand horizontally
  • Multiple distributed transaction protocol support

    • TCC, Saga, Xa, transaction message

Comparison with other frameworks

At present, the open source distributed transaction framework has not seen a mature framework in non Java language. There are many java languages, including Seata of Alibaba, servicecomb pack of Huawei, shardingsphere of JD, himly, TCC transaction, bytetcc, etc., among which Seata is the most widely used.

The following is a comparison of the main features of DTM and Seata:

characteristic DTM SEATA remarks
Support language Go、Java、python、php、c#… Java DTM can easily access a new language
exception handling Sub transaction barrier automatic processing Manual processing DTM solves idempotent, suspension and null compensation
TCC transaction
Xa transaction
At transaction At is similar to Xa, with better performance but dirty rollback
Saga transaction Simple mode State machine complex mode The state machine mode of DTM is in planning
Transaction message DTM provides transaction messages similar to rocketmq
Single service multiple data sources
communication protocol HTTP、gRPC Dubbo and other protocols, no http DTM is more cloud friendly

From the features compared above, if your language stack contains languages other than Java, DTM is your first choice. If your language stack is Java, you can also choose to access DTM and use sub transaction barrier technology to simplify your business writing.

Tutorials and documentation

If you thinkyedf/dtmNot bad, or helpful to you. Please give me a star!