Distributed Transactions
Distributed transactions coordinate updates across multiple resources to maintain atomicity, consistency, isolation, and durability across a distributed system.
Distributed transactions coordinate updates across multiple, often heterogeneous, resources to complete a single logical operation. They aim to preserve ACID properties across resource managers that do not share a common datastore. Common coordination approaches include two-phase commit (2PC), three-phase commit (3PC), or compensating transactions (Sagas) for long-running workflows. Key concerns include coordination blocking, single points of failure, latency, and the handling of partial failures with rollback or compensation. Practical design often uses a transaction manager and resource managers that support standardized interfaces such as XA/JTA or DTC, and may leverage outbox patterns, idempotent operations, and logging for auditability. In contemporary microservice architectures, strong global ACID is often traded for eventual consistency with compensating actions to improve availability and latency.
graph LR
Center["Distributed Transactions"]:::main
Rel_decentralized_derivatives_pricing_models["decentralized-derivatives-pricing-models"]:::related -.-> Center
click Rel_decentralized_derivatives_pricing_models "/terms/decentralized-derivatives-pricing-models"
Rel_transaction_sharding["transaction-sharding"]:::related -.-> Center
click Rel_transaction_sharding "/terms/transaction-sharding"
Rel_decentralized_exchange_dex_order_book["decentralized-exchange-dex-order-book"]:::related -.-> Center
click Rel_decentralized_exchange_dex_order_book "/terms/decentralized-exchange-dex-order-book"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explique como se eu tivesse 5 anos
Generated ELI5 content
🤓 Expert Deep Dive
Generated expert content
❓ Perguntas frequentes
What is a distributed transaction?
A transaction that spans multiple networked resources and coordinates to appear atomic across all participants.
What does ACID mean in this context?
Atomicity, Consistency, Isolation, and Durability, applied across multiple resources through coordination protocols.
What is two-phase commit (2PC)?
A protocol with a prepare phase and a commit phase to ensure all participants commit or roll back together.
What about sagas and compensating actions?
Sagas sequence local transactions with compensating actions to achieve long-running distributed transactions without locking all resources.
What are common failure modes?
Coordinator failure, participant failure, network partitions, and lock contention can lead to blocking or partial commits.
When should you use 2PC vs sagas?
Use 2PC for short, strongly consistent, bounded transactions; use sagas for long-running processes requiring high availability and eventual consistency.
What are alternatives to strict ACID?
Eventual consistency models, compensating actions, and idempotent design patterns.