# dtm-labs/dtm

A distributed transaction framework, supports workflow, saga, tcc, xa, 2-phase message, outbox patterns, supports many languages.

Repository: https://github.com/dtm-labs/dtm
Canonical: https://ross.abutalabs.com/products/dtm
Homepage: http://d.dtm.pub
Language: Go
License: BSD-3-Clause
License Family: permissive
Topics: saga, xa, tcc, microservice, seata, go, dtm, golang, distributed, transaction, distributed-transactions, database, java, csharp, transactions, workflow-engine, cadence, outbox
Last push: 2026-01-03T13:47:46+00:00

## Health v2 (maintenance only)
Score: 50/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 60, release rhythm 8, longevity 100
- inputs: {"age_days": 1936, "days_push": 242, "days_rel": 575, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 10911, forks 999 (observed 2026-08-28T04:10:44.680748+00:00)

## What it is
DTM is a distributed transaction framework that provides cross-service eventual data consistency using saga, TCC, XA, 2-phase message, outbox, and workflow patterns. It offers SDKs for Go, Java, PHP, C#, Python, and Node.js, and supports multiple storage engines including MySQL, Redis, and BoltDB.

## Use cases
- ensure data consistency across microservices
- implement saga pattern for distributed transactions
- reliable outbox pattern for event publishing
- deduct inventory in flash sales with exact consistency
- manage cache consistency across services
- coordinate multi-database transactions
- build non-monolithic order systems

## When to choose
- you need cross-service eventual consistency in a microservices architecture
- you want a multi-language transaction manager with SDKs for Go, Java, Python, and more
- you need a better alternative to the outbox pattern via 2-phase messages
- you require support for multiple storage engines like MySQL, Redis, or Postgres
- you want a battle-tested framework used by Tencent and Bytedance

## When to avoid
- your application is a single monolith with one database - local ACID transactions suffice
- you need strictly synchronous strong consistency rather than eventual consistency
- you are not using a supported language or storage engine
- you want a fully managed cloud service rather than self-hosted infrastructure

## Facets
- artifact type: framework
- maturity: stable
- function: microservices, workflow-automation, database, message-queue, concurrency
- domain: microservices, databases, backend, developer-tools
- platform: go, jvm, python, dotnet, php, cross-platform, self-hosted
- tags: distributed-transactions, saga, tcc, xa, outbox-pattern, 2-phase-message, eventual-consistency, data-consistency, workflow-engine, seata-alternative, nodejs, docker

## Member repositories
- dtm-labs/dtm (main) score 50

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:44.680748+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:17:24.003171+00:00, confidence not recorded.
  - readme: https://github.com/dtm-labs/dtm (fetched 2026-08-28T04:10:44.680748+00:00, sha b1ea725c60eb)
- Data as of 2026-08-30T08:39:29.467469+00:00.
