A Spring Cloud implementation that integrates Spring Cloud applications with Tencent's Polaris for service discovery and governance.
apache/incubator-seata
An open-source distributed transaction solution for microservices, supporting AT, TCC, Saga and XA modes.
- Stars
- 26,001
- Forks
- 8,830
- Open issues
- 911
- Last commit
- 7 days ago
What is it?
Apache Seata is a distributed transaction framework for microservices. When a business operation spans several services with their own databases, a single local transaction can no longer keep data consistent across them. Seata coordinates these branch transactions through a global transaction that can be committed or rolled back as a whole.
The framework has three roles: a Transaction Coordinator (TC) that tracks global and branch transaction status and drives commit or rollback, a Transaction Manager (TM) that defines the scope of a global transaction, and a Resource Manager (RM) that registers branches and executes their commit or rollback. A global transaction ID (XID) is passed along the service call chain so each service can join the same transaction.
The project is written in Java. It offers a seata-all library for general use and a seata-spring-boot-starter for Spring Boot applications, and its ecosystem includes Go client, samples, Kubernetes integration and a CLI.
Key features
- 01Coordinates global transactions across multiple microservices with XID propagation.
- 02Separates roles into Transaction Coordinator, Transaction Manager and Resource Manager.
- 03Provides a Java library (seata-all) and a Spring Boot starter.
- 04Ecosystem includes a Go client, Kubernetes integration and a CLI tool.
Use cases
- Keeping order, payment and inventory data consistent across separate microservices.
- Adding distributed transaction support to existing Java or Spring Boot systems.
- Running Seata on Kubernetes as part of a microservice deployment.
Quick start
- 1
Add the Maven dependency seata-all or seata-spring-boot-starter (version 2.5.0)
- 2
Follow the official Quick Start guide to deploy the Seata server
Things to know
- Running transactions requires deploying and operating a separate Seata coordinator server.
- The project is listed as Apache Incubator (incubating) in the README.
Topics
FAQ
- What is incubator-seata?
- An open-source distributed transaction solution for microservices, supporting AT, TCC, Saga and XA modes. Apache Seata is a distributed transaction framework for microservices. When a business operation spans several services with their own databases, a single local transaction can no longer keep data consistent across them. Seata coordinates these branch transactions through a global transaction that can be committed or rolled back as a whole.
- Is incubator-seata free to use? What license does it have?
- incubator-seata is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is incubator-seata still maintained?
- Actively maintained. The last commit to incubator-seata was on Oct 31, 2026.
- What can I use incubator-seata for?
- Keeping order, payment and inventory data consistent across separate microservices. Adding distributed transaction support to existing Java or Spring Boot systems. Running Seata on Kubernetes as part of a microservice deployment.
- How do I install incubator-seata?
- Add the Maven dependency seata-all or seata-spring-boot-starter (version 2.5.0) Follow the official Quick Start guide to deploy the Seata server
- Where can I get incubator-seata?
- The source code and installation instructions are on GitHub: https://github.com/apache/incubator-seata
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Solon is a Java application framework for building enterprise services, positioned as a lighter alternative to Spring with no Servlet or Spring dependency.
A high-performance, minimalist web framework for Go, built on the standard net/http package.
An opinionated Go framework for building microservices, with built-in databases, observability, gRPC and Kubernetes-oriented defaults.
A modular Go application framework with an HTTP server, ORM, caching, logging, and tracing, usable as a full framework or per-component.
A Go RPC framework for building microservices, with pluggable service discovery, multiple transports and codecs, and cross-language access over HTTP.