# yedf/dtm

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/yedf-dtm).**

10,885 stars · 1,000 forks · Go · BSD-3-Clause

## Links

- GitHub: https://github.com/yedf/dtm
- Homepage: http://d.dtm.pub
- awesome-repositories: https://awesome-repositories.com/repository/yedf-dtm.md

## Description

dtm is a distributed transaction framework and workflow orchestrator designed to manage data consistency across microservices. It functions as a centralized coordinator that synchronizes distributed transactions and manages the state and execution flow of complex sequences of distributed tasks.

The framework implements several coordination patterns, including Saga, TCC, and XA, to prevent synchronization errors. It specifically provides a multi-language transaction coordinator to synchronize operations across services written in different programming languages and utilizes a reliable messaging outbox to couple database updates with message dispatching.

Its capability surface covers distributed system recovery through compensating transaction rollbacks, two-phase commit coordination, and exactly-once message delivery. The infrastructure supports horizontal capacity expansion and high availability configurations to maintain stability as request volumes increase.

## Tags

### DevOps & Infrastructure

- [Business Process Orchestration](https://awesome-repositories.com/f/devops-infrastructure/distributed-task-orchestration/business-process-orchestration.md) — Functions as a distributed workflow orchestrator that manages the execution flow of complex business processes. ([source](https://github.com/yedf/dtm#readme))
- [Distributed Workflow Orchestrators](https://awesome-repositories.com/f/devops-infrastructure/distributed-workflow-orchestrators.md) — Coordinates complex sequences of distributed tasks while managing their execution flow and state.
- [Reliable Message Delivery](https://awesome-repositories.com/f/devops-infrastructure/message-queues/reliable-message-delivery.md) — Implements exactly-once message delivery using a reliable messaging outbox to maintain data integrity across microservices. ([source](https://github.com/yedf/dtm#readme))
- [Horizontal Scaling Deployments](https://awesome-repositories.com/f/devops-infrastructure/high-availability-deployments/horizontal-scaling-deployments.md) — Supports horizontal capacity expansion and high availability to maintain stability as request volumes increase. ([source](https://github.com/yedf/dtm#readme))

### Software Engineering & Architecture

- [Automatic Compensation Mechanisms](https://awesome-repositories.com/f/software-engineering-architecture/data-consistency-models/automatic-compensation-mechanisms.md) — Automatically invokes compensating operations for sub-transactions to restore system consistency after a failure. ([source](https://github.com/yedf/dtm#readme))
- [Distributed State Recovery](https://awesome-repositories.com/f/software-engineering-architecture/distributed-state-recovery.md) — Automatically invokes compensating operations to roll back failed sub-transactions and restore system consistency.
- [Distributed Transaction Coordinators](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-coordinators.md) — Provides a centralized coordinator to manage global transaction lifecycles and maintain data synchronization across microservices. ([source](https://github.com/yedf/dtm#readme))
- [Polyglot Coordinators](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-coordinators/polyglot-coordinators.md) — Provides a centralized coordinator that synchronizes distributed transactions across services written in different languages.
- [Saga Coordinators](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-coordinators/saga-coordinators.md) — Coordinates saga-based distributed transactions by executing compensating transactions in reverse order during failures.
- [Two-Phase Commit Protocols](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-coordinators/two-phase-commit-protocols.md) — Manages a two-phase commit protocol to ensure atomic updates across distributed data stores.
- [Distributed Transaction Management](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-management.md) — Ensures data consistency across microservices using distributed transaction patterns like Saga, TCC, and XA.
- [Try-Confirm-Cancel Implementations](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-patterns/try-confirm-cancel-implementations.md) — Coordinates the Try, Confirm, and Cancel phases to manage resource reservation in distributed business operations.
- [Consistency Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/distributed-computing-paradigms/microservice-frameworks/consistency-frameworks.md) — Provides a comprehensive framework for maintaining data integrity and synchronization across distributed services.
- [State Machine Orchestrators](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-orchestrators.md) — Uses a persistent state machine to track the lifecycle and ensure consistent progress of distributed transactions.
- [Transactional Outbox Patterns](https://awesome-repositories.com/f/software-engineering-architecture/transactional-outbox-patterns.md) — Implements the transactional outbox pattern to ensure atomicity between database updates and event publishing.
- [Event Driven Messaging](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-messaging.md) — Provides an event-driven messaging layer to trigger asynchronous task execution across remote microservices.
- [Outbox Pattern Implementations](https://awesome-repositories.com/f/software-engineering-architecture/outbox-pattern-implementations.md) — Couples database updates with message dispatching to ensure exactly-once delivery and prevent data loss.

### User Interface & Experience

- [Domain Workflow Orchestration](https://awesome-repositories.com/f/user-interface-experience/progress-steps/workflow-orchestrators/command-driven-application-logic/domain-workflow-orchestration.md) — Orchestrates complex sequences of distributed tasks to fulfill specific business use cases.

### Part of an Awesome List

- [Database Tools](https://awesome-repositories.com/f/awesome-lists/data/database-tools.md) — Distributed transaction management service.
