Skip to content
CAI
Software that uses CAICheck a score

apache/incubator-seata

48.4

Weak · 6 August 2026

269.3k

lines of production code

Java

primary language

3

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a distributed transaction coordination framework that manages global and branch transaction states across microservices. It provides mechanisms for transaction propagation over various RPC and messaging protocols, including gRPC, Dubbo, and HTTP, while supporting multiple storage backends and serialization formats. The architecture emphasizes extensibility through a service loader pattern and offers comprehensive integration with Spring Boot and popular configuration and registry centers.

How it got here

2019–2024 — Apache Seata migration and architectural modernization

163 changes.

This period marks the comprehensive migration of the Seata project to the Apache Software Foundation, involving a complete package namespace shift from io.seata to org.apache.seata. The codebase was refactored to support modern distributed transaction protocols, including a new RPC framework, enhanced serialization with security whitelists, and expanded support for configuration centers like Nacos, Apollo, and Consul. Additionally, the project introduced robust tooling, including Helm charts, database initialization scripts, and a visual designer for Saga state machines, while maintaining backward compatibility through a dedicated shim layer.

2025–2026 — Spring Boot auto-configuration and RPC integrations

24 changes.

This period focused on modernizing the project's integration with the Spring Boot ecosystem through comprehensive auto-configuration and property binding. Simultaneously, extensive new features were added to support distributed transaction context propagation across various RPC frameworks, including gRPC, HTTP, bRPC, Dubbo, and HSF. The work also included expanding serialization support with Fory and Fastjson2, adding a benchmark CLI tool, and significantly increasing test coverage for core components.

Features

Add ANTLR-based SQL parser for MySQL

Introduces a new ANTLR-based SQL parser implementation for MySQL, including grammar files (MySqlLexer.g4, MySqlParser.g4) and Java classes (e.g., AntlrMySQLDeleteRecognizer, AntlrMySQLInsertRecognizer, AntlrMySQLUpdateRecognizer, AntlrMySQLSelectRecognizer) that parse and recognize SQL operations (SELECT, INSERT, UPDATE, DELETE) using the ANTLR4 framework.

sqlparser/seata-sqlparser-antlr · high confidence

Add Apache 2.0 license headers and project governance files

The project now includes standard Apache Software Foundation governance and compliance files to satisfy licensing and community requirements. This includes the Apache 2.0 license text, a NOTICE file, a DISCLAIMER, and a CODE\_OF\_CONDUCT.md. Additionally, a \.licenserc.yaml\ configuration is added to automate header checks, while \.asf.yaml\ configures GitHub repository settings such as required status checks and pull request reviews. The repository also introduces a \Makefile\ to standardize build, test, and license-check commands, alongside a Maven wrapper (\mvnw\) to ensure consistent Maven versions across all environments.

(repo-wide) · high confidence

Add Consul as a configuration source

Users can now store and retrieve Seata configuration data in a Consul cluster. This change introduces the \ConsulConfiguration\ and \ConsulConfigurationProvider\ classes, which implement the \Configuration\ and \ConfigurationProvider\ interfaces to enable Consul-based configuration management.

config/seata-config-consul/src/main · high confidence

Add Consul service discovery implementation

The Seata framework now supports service discovery via HashiCorp Consul. This change introduces the \seata-discovery-consul\ module, which provides a \ConsulRegistryService\ implementation that registers, unregisters, and subscribes to service instances using the Consul HTTP API. Users can configure Consul as their registry center to enable dynamic service discovery and load balancing across Consul-backed microservices.

discovery/seata-discovery-consul/src/main/java, discovery/seata-discovery-eureka/src/main · high confidence

Add Deflater and Gzip compression implementations

The framework now includes new compression modules for Deflater and Gzip algorithms. Users can compress and decompress data using these standard algorithms, which are registered via the \org.apache.seata.core.compressor.Compressor\ SPI file for automatic discovery. The implementation includes utility classes (\DeflaterUtil\, \GzipUtil\) and their corresponding compressor wrappers (\DeflaterCompressor\, \GzipCompressor\) with full test coverage.

compressor/seata-compressor-deflater · high confidence

Add Docker entrypoint script for Seata Naming Server

A new entrypoint shell script (seata-naming-server-entrypoint.sh) has been added to the Docker resources for the naming server. This script configures the Java environment and launches the application using the Jib-generated classpath and main class, enabling direct containerized execution of the naming server.

namingserver/src/main/resources/docker · high confidence

Add English error code resource file for Seata

A new English resource file, ErrorCode\_en.properties, has been added to the common module. This file defines error message templates, including a specific template for deserialization security errors, which supports improved error reporting and localization for English-speaking users.

common/src/main/resources · high confidence

Add Fastjson2 serializer support for SEATA

Users can now use the Fastjson2 library for serializing and deserializing SEATA protocol messages. This change introduces the Fastjson2Serializer implementation, its factory, and the corresponding service provider configuration, enabling SEATA to leverage Fastjson2's JSONB format for improved performance and security. A dedicated test ensures concurrent reference deserialization does not drop fields, addressing a specific bug in the Fastjson2 library's handling of complex object graphs.

serializer/seata-serializer-fastjson2 · high confidence

Add Fastjson2 serializer with JSON deserialization allowlist

The json-common-core module now includes a new Fastjson2 JSON serializer implementation that enforces a configurable allowlist for JSON deserialization, preventing unsafe class loading. The change introduces a \JsonAllowlistManager\ that validates deserialized types against built-in and user-defined allowlists, and integrates this check into the Fastjson2 serializer's auto-type handling. A warmup utility is also added to pre-initialize Fastjson2 object readers. Additionally, the \JsonSerializer\ interface and factory are updated to support Jackson3 and other serializers, with the factory falling back to Jackson if Jackson3 is unavailable. Tests are added to verify the allowlist behavior and serializer functionality.

json-common/json-common-core · high confidence

Add Fory serialization support

Users can now use the Fory serialization format for message encoding and decoding. This change introduces the ForySerializer implementation, a factory for managing the Fory instance with safe class registration and reference tracking, and registers the serializer via the Java SPI mechanism. A corresponding unit test verifies that Fory serialization works correctly for transaction-related messages.

serializer/seata-serializer-fory · high confidence

Add HTTP RPC integration for Spring MVC

Introduced a new \seata-http\ extension that enables distributed transaction context propagation for HTTP requests in Spring MVC applications. The change adds an \AbstractHttpExecutor\ and \DefaultHttpExecutor\ to handle HTTP client operations, along with a \TransactionPropagationInterceptor\ that automatically binds and cleans up the Seata XID header in Spring MVC requests. A \SeataWebMvcConfigurer\ registers the interceptor, and a \HandlerInterceptorAdapter\ provides default Spring MVC lifecycle methods. Tests verify that the XID is correctly propagated and cleaned up during GET, POST, and exception scenarios.

extensions/rpc/seata-http · high confidence

Add Helm chart for deploying the Seata Server

The Seata Server can now be deployed to Kubernetes using the new Helm chart located in script/server/helm/seata-server. This includes the chart metadata, templates for the Deployment and Service, helper templates, and default values for image, service type, and environment variables, enabling users to install the Seata Server via Helm.

script/server/helm · high confidence

Add Jakarta-based HTTP integration for Seata RPC

Introduced a new \seata-http-jakarta\ extension module containing \JakartaSeataWebMvcConfigurer\ and \JakartaTransactionPropagationInterceptor\. This adds support for propagating the Seata XID header in Jakarta Servlet-based Spring MVC applications, with corresponding unit tests verifying the interceptor's behavior.

extensions/rpc/seata-http-jakarta · high confidence

Add Kryo serialization support and custom registry provider

The codebase now includes a new Kryo-based serializer implementation (KryoSerializer, KryoInnerSerializer, and KryoSerializerFactory) that enables high-performance object serialization for Seata messages. Additionally, a custom registry provider (CustomRegistryProvider) has been added to the discovery module, allowing users to configure and load custom registry implementations via configuration. These changes introduce new capabilities for data serialization and service discovery configuration.

discovery/seata-discovery-custom/src/main, serializer/seata-serializer-kryo · high confidence

Add LZ4 compression support

The Seata framework now includes a built-in LZ4 compressor implementation. Users can enable LZ4 compression for their transactions by configuring the appropriate compressor type. The change introduces the \Lz4Compressor\ class and its utility, registers the implementation via the \META-INF/services\ SPI file, and includes comprehensive unit tests for both the compressor and its underlying utility methods.

compressor/seata-compressor-bzip2, compressor/seata-compressor-zip, compressor/seata-compressor-lz4 · high confidence

Add Logstash configuration files for centralized logging

Two new configuration files are added to the project: logstash-kafka.conf and logstash-logback.conf. These files define the pipeline for forwarding logs to Elasticsearch via Kafka and TCP inputs respectively, enabling users to integrate their application logs into a centralized logging system.

script/logstash · high confidence

Add Protobuf and gRPC serialization support for distributed transaction protocols

Users can now serialize and deserialize Seata distributed transaction messages (including global and branch commit/rollback requests and responses) using the Protobuf format, or use the new gRPC-based serializer for more efficient binary encoding. This change introduces a complete set of Protobuf converters and serializers, enabling higher performance and cross-language compatibility for transactional messaging.

serializer/seata-serializer-protobuf/src/main/java · high confidence

Add RPC status tracking and HTTP context support

The Seata framework introduces new classes to support HTTP/2 and improve RPC observability. A new RpcStatus class has been added to track active and total RPC counts per service, enabling better monitoring of service load. Additionally, an HttpContext class has been introduced to manage HTTP context information, including support for HTTP/2.0 versus HTTP/1.1, and handling of keep-alive and async states for network channels.

common/src/main/java/org/apache/seata/common/rpc · high confidence

Add Redis-based service discovery and registry support

Users can now use Redis as a backend for service discovery and registry. This change introduces the Redis implementation for the registry module, including the core service implementation, a provider for service loading, a listener interface for events, and the necessary SPI configuration to enable Redis-based discovery.

discovery/seata-discovery-redis/src/main · high confidence

Add SOFA Registry service implementation

The SOFA Registry integration is now available for service discovery. This change introduces the \SofaRegistryProvider\ and \SofaRegistryServiceImpl\ classes, which implement the \RegistryProvider\ interface to handle registration, unregistration, and subscription for services using the SOFA Registry. The provider is automatically discovered via the \META-INF/services\ SPI file, enabling users to configure \registry.sofa\ properties to connect to a SOFA Registry cluster.

discovery/seata-discovery-etcd3/src/main/java, discovery/seata-discovery-sofa · high confidence

Add Seata integration for RocketMQ with TCC transaction support

Introduces a new Seata MQ producer and factory for RocketMQ, enabling distributed transaction support via a TCC (Try-Confirm-Cancel) pattern. The implementation includes a custom producer that intercepts message sends during global transactions, ensuring that messages are only committed or rolled back based on the global transaction status. A key behavioral change is the rejection of messages with delay time levels during Seata transactions, as indicated by the commit message and the explicit check in the code that throws an exception if a delay time level is set. This adds a new messaging integration point for users requiring transactional guarantees with RocketMQ.

extensions/messaging/seata-rocketmq · high confidence

Add SkyWalking APM plugin for Seata distributed transactions

The APM extension now includes a new SkyWalking plugin for Seata, enabling distributed transaction tracing. This adds interceptors for Seata's core components (DefaultCore, NettyRemoting, RemotingProcessor) to create and manage SkyWalking spans for global commit, rollback, and RPC operations. The plugin automatically extracts and tags the Seata XID in the distributed trace, allowing users to monitor Seata transaction flows alongside other microservices in their SkyWalking dashboard.

extensions, extensions/apm/apm-seata-skywalking-plugin · high confidence

Add Spring Boot starter default configuration files

Added \application.properties\ and \application.yml\ templates in \script/client/spring\ that provide default values for all Seata client and transport settings, including data source proxying, TCC/Saga options, Nacos/Etcd/ZooKeeper registry and config center parameters, and JSON serialization types.

script/client/spring · high confidence

Add Spring Cloud configuration support for Seata

Users can now configure Seata using Spring Cloud's environment properties. This change introduces a new \SpringCloudConfiguration\ implementation that reads configuration values from the Spring \Environment\ (e.g., \seata.\*\ properties), making it possible to manage Seata settings via Spring Cloud Config or standard Spring Boot configuration files. The module also includes a \SpringApplicationContextProvider\ to store the Spring context for internal access, and a \SpringCloudConfigurationProvider\ to register the new configuration source. Unit tests are added to verify the behavior of the configuration provider and the Spring context integration.

config/seata-config-etcd3, config/seata-config-spring-cloud · high confidence

Add TCC interceptor compatibility layer

A new compatibility layer has been introduced in the \io.seata.rm.tcc.interceptor\ package, providing \TccActionInterceptorHandler\ and \TccActionInterceptorParser\ classes. These components bridge the legacy \io.seata\ TCC API with the newer \org.apache.seata\ infrastructure, enabling existing TCC-based distributed transactions to function through the updated interceptor framework.

compatible/src/main/java/io/seata/rm/tcc/interceptor · high confidence

Add Zookeeper-based configuration support

Users can now store and retrieve configuration data in a Zookeeper cluster. This change introduces the \ZookeeperConfiguration\ class and its provider, which use the Apache Curator client to manage configuration nodes. The implementation includes connection management, path checking, and data reading/writing via the Curator framework, enabling Seata to synchronize configuration state across distributed nodes using Zookeeper as the backend store.

config/seata-config-zk/src/main · high confidence

Add Zookeeper-based service discovery implementation

The codebase now includes a new Zookeeper registry implementation for service discovery. This adds the \ZookeeperRegisterServiceImpl\ which manages service registration and subscription via Apache Curator, along with the \ZookeeperRegistryProvider\ and its corresponding SPI service file, enabling users to configure Zookeeper as their registry center.

discovery/seata-discovery-zk/src/main · high confidence

Add Zstandard (Zstd) compressor implementation

The Seata framework now supports Zstandard (Zstd) compression. This change introduces the ZstdCompressor and its utility class, which use the ZstdInputStream for decompression, replacing the previous JNI-based approach. The service is registered via the META-INF/services file, enabling users to select Zstd as a compression algorithm.

compressor/seata-compressor-zstd/src/main · high confidence

Add compact metrics registry implementation

The \metrics/seata-metrics-registry-compact\ module now includes a new \CompactRegistry\ and supporting classes (\CompactCounter\, \CompactGauge\, \CompactSummary\, \CompactTimer\, \SummaryValue\, \TimerValue\) that provide a lightweight, non-caching metrics registry implementation. The registry is registered via the \META-INF/services\ file, enabling it to be discovered and used as a metrics backend. Tests have been added to verify the behavior of these components.

metrics/seata-metrics-exporter-prometheus, metrics/seata-metrics-registry-compact · high confidence

Add database initialization scripts for Dameng, Kingbase, Oscar, and SQL Server

New SQL initialization scripts have been added to support storing Seata transaction data in additional database engines. The diff shows the addition of \dm.sql\ (Dameng), \kingbase.sql\ (Kingbase), \oscar.sql\ (Oscar), and \sqlserver.sql\ (SQL Server). These files define the necessary schema objects (global\_table, branch\_table, lock\_table, distributed\_lock, and vgroup\_table) tailored to the specific SQL dialects of these databases, enabling users to persist session and lock data in these systems when using 'db' store mode.

script/server/db · high confidence

Add database-backed persistence for Saga state machine definitions and execution logs

The \seata-saga-engine-store\ module now provides a relational database implementation for storing and retrieving state machine definitions and execution logs. New interfaces \StateLangStore\ and \StateLogStore\ define the contract for state machine and log operations, while \DbStateLangStore\ and \StateLogStoreSqls\ provide the SQL-based implementation. This change enables users to persist state machine metadata and runtime logs to a database, supporting features like querying state machines by name and tenant, and recording state machine and state instance lifecycle events.

saga/seata-saga-engine-store · high confidence

Add deprecated compatibility layer for the Seata Saga engine

A new compatibility layer has been added to the \io.seata.saga.engine\ package, providing deprecated wrapper interfaces and classes (such as \AsyncCallback\, \StateMachineConfig\, \StateMachineEngine\, and various repository/store interfaces) that delegate to the underlying \org.apache.seata.saga.engine\ implementation. This allows existing code using the older \io.seata\ package to continue functioning, while signaling that these APIs are deprecated in favor of the new \org.apache.seata\ namespace.

compatible/src/main/java/io/seata/saga/engine · high confidence

Add deprecated compatibility wrappers for Seata Spring annotations and scanners

New compatibility classes have been added to the \io.seata.spring.annotation\ package, including \GlobalLock\, \GlobalTransactional\, \GlobalTransactionScanner\, \ScannerChecker\, \AutoDataSourceProxyRegistrar\, and \EnableAutoDataSourceProxy\. These classes are marked as \@Deprecated\ and serve as wrappers or compatibility shims for the corresponding components in the \org.apache.seata\ package, ensuring that existing applications using the older package paths continue to function.

compatible/src/main/java/io/seata/spring · high confidence

Add interactive and script-based Nacos config initialization tools

New scripts and a Python utility are added to the Nacos config-center directory, providing users with multiple ways to initialize configuration data in a Nacos server. The package includes an interactive Python script (nacos-config-interactive.py) and shell script (nacos-config-interactive.sh) that prompt for connection details, and non-interactive counterparts (nacos-config.py and nacos-config.sh) that accept command-line arguments or environment variables to push configuration key-value pairs from a local file to Nacos.

script/config-center/nacos · high confidence

Add interactive and script-based configuration upload for Apollo, Consul, and ZooKeeper

New interactive and script-based configuration upload scripts are added for Apollo, Consul, and ZooKeeper. The scripts read local configuration files and push them to the respective config centers, allowing users to initialize or update their configuration without manual API calls. For Apollo, both an interactive and a non-interactive script are provided. For Consul, both an interactive and a non-interactive script are provided. For ZooKeeper, both an interactive and a non-interactive script are provided.

script/config-center/apollo, script/config-center/consul, script/config-center/zk · high confidence

Add metadata model classes for cluster and node information

New data classes (Cluster, ClusterRole, ClusterWatchEvent, Instance, Metadata, MetadataResponse, Node) are added to the common metadata package, providing structured representations for cluster topology, node endpoints, and watch events to support Raft mode and naming server integration.

common/src/main/java/org/apache/seata/common/metadata · high confidence

Add protobuf serialization support for Seata protocol messages

The Seata protobuf serializer now includes a comprehensive set of Protocol Buffer definitions for transaction protocol messages, including global and branch operations such as begin, commit, rollback, and status reporting. These .proto files, along with the SPI registration for \ProtobufSerializer\ and \GrpcSerializer\, enable efficient serialization of distributed transaction data for clients and the TC (Transaction Coordinator).

serializer/seata-serializer-protobuf/src/main/resources · high confidence

Add startup scripts for the new Seata Naming Server and Seata Server

New shell and batch scripts are added to the distribution/bin directory to support launching the Seata Naming Server and the main Seata Server. The scripts handle environment setup, JVM parameter configuration (including automatic memory calculation and SkyWalking APM integration), and command-line argument parsing for both Linux/macOS and Windows environments.

distribution/bin · high confidence

Add store mode enums for transaction, session, and lock storage backends

The Seata common module introduces three new Java enums—StoreMode, SessionMode, and LockMode—each defining FILE, DB, REDIS, and RAFT as supported storage backends. These enums provide a centralized, type-safe way to configure and validate storage modes for transactions, sessions, and distributed locks, enabling the system to select and verify the appropriate persistence mechanism for each component.

common/src/main/java/org/apache/seata/common/store · high confidence

Add support for Apollo as a configuration source

The Seata runtime can now read configuration from an Apollo server. This change introduces the \ApolloConfiguration\ class, which connects to Apollo to fetch configuration properties and supports adding/removing listeners for configuration changes. The \ApolloConfigurationProvider\ and its SPI registration enable automatic discovery of this provider, allowing users to configure Seata using Apollo as a centralized configuration source.

config/seata-config-apollo/src/main · high confidence

Add support for Seata Naming Server as a registry and discovery backend

Users can now configure Seata to use a Naming Server for service discovery and registration. This change introduces a new registry provider and implementation that allows clients to register instances, discover cluster nodes, and receive real-time updates about node status changes (online/offline) via the Naming Server. The feature includes a dedicated listener interface, exception handling, and a service provider registration to enable seamless integration with the existing Seata architecture.

discovery/seata-discovery-namingserver · high confidence

Added SPI configuration for Saga engine interceptors

New Service Provider Interface (SPI) files have been added to register default interceptors for the Saga engine. Specifically, the system now automatically loads the ServiceTaskHandlerInterceptor, ScriptTaskHandlerInterceptor, LoopTaskHandlerInterceptor, and InSagaBranchHandlerInterceptor via the StateHandlerInterceptor SPI, and the EndStateRouterInterceptor via the StateRouterInterceptor SPI. This enables the engine to discover and apply these standard interception behaviors without manual configuration.

saga/seata-saga-engine/src/main/resources · medium confidence

Added SPI service files and gRPC protocol definition

The core module now includes Service Provider Interface (SPI) configuration files under META-INF/services, registering implementations for authentication (AuthSigner), context management (ContextCore), RPC hooks (RpcHook), and SQL store providers for distributed locks, logging, and other database operations. Additionally, a new gRPC protocol definition (grpcMessage.proto) is introduced to support the gRPC communication protocol.

core/src/main/resources · high confidence

Added TCC fence log tables for multiple databases

New SQL scripts have been added to create the \tcc\_fence\_log\ table in MySQL, PostgreSQL, Oracle, and OceanBase databases. This table tracks transaction fence logs with columns for global ID, branch ID, action name, status, and timestamps, enabling TCC mode to support idempotency and anti-hanging mechanisms.

script/client/tcc · high confidence

Added compatibility layer for Seata Saga state language domain models

New interfaces and implementations were added to the \io.seata.saga.statelang.domain\ package to provide a compatibility layer for the \org.apache.seata\ API. This includes domain models such as \State\, \StateInstance\, \StateMachine\, and \StateMachineInstance\, along with supporting enums like \StateType\, \ExecutionStatus\, and \RecoverStrategy\. These classes wrap the underlying Apache Seata objects, allowing the compatible module to interact with the state machine execution and configuration while maintaining API compatibility.

compatible/src/main/java/io/seata/saga/statelang · high confidence

Added core lock model and abstraction for local database locking

Introduced new classes in the \org.apache.seata.core.lock\ package to support local database locking: the \Locker\ interface, the \AbstractLocker\ base class, the \LocalDBLocker\ implementation, and the \RowLock\ data model. These files define the structure for acquiring, releasing, and managing row-level locks within the core module.

core/src/main/java/org/apache/seata/core/lock · high confidence

Added database initialization scripts for multiple new database platforms

Added new SQL scripts to initialize the AT mode undo\_log table for Dameng, Kingbase, OceanBase, Oscar, PostgreSQL, and SQL Server. These scripts provide the necessary schema definitions for each respective database system, enabling users to set up the required transactional state tracking tables on these platforms.

script/client/at · high confidence

Added database schema scripts for state machine tables across multiple databases

New SQL scripts have been added to the \script/client/saga/db\ directory to initialize the \seata\_state\_machine\_def\, \seata\_state\_machine\_inst\, and \seata\_state\_inst\ tables. These scripts provide the necessary schema definitions for MySQL, H2, PostgreSQL, Oracle, DB2, and OceanBase, enabling the storage and management of state machine definitions and their runtime instances.

script/client/saga · high confidence

Added gRPC interceptors for distributed transaction context propagation

New gRPC interceptors have been added to the Seata gRPC integration module, enabling automatic propagation of transaction context (XID and branch type) across gRPC calls. The \ClientTransactionInterceptor\ injects the transaction ID and branch type into outgoing gRPC headers, while the \ServerTransactionInterceptor\ extracts these headers to restore the transaction context on the server side. This ensures that distributed transactions are correctly tracked and managed across gRPC service boundaries.

extensions/rpc/seata-grpc · high confidence

Added interactive and non-interactive scripts for initializing etcd3 configuration

New shell scripts, etcd3-config-interactive.sh and etcd3-config.sh, were added to the etcd3 configuration center. These scripts automate the process of uploading configuration data to an etcd3 cluster via the REST API, supporting both interactive input and command-line argument modes. This allows users to easily initialize their etcd3 configuration without manual API calls.

script/config-center/etcd3 · high confidence

Added logging configuration files for core module

The core module now includes default logging configurations for both Log4j (log4j.properties) and Logback (logback.xml). These files establish baseline logging behaviors, with Log4j configured for console and rolling file appender outputs, while Logback is set to output to the console at the INFO level.

core/src/main · high confidence

Added metadata model classes for the NamingServer

Introduced new Java classes in the common module to support the NamingServer feature. The diff adds MetaResponse, NamingServerNode, and Unit, which define the data structures for cluster information, node status, and unit management. These models enable the system to handle metadata related to the naming server, including tracking terms, units, and instance lists.

common/src/main/java/org/apache/seata/common/metadata/namingserver · high confidence

Added mock server helper for RM branch operations

A new \CallRm\ utility class was added to the mock server to facilitate remote procedure calls for branch commit, rollback, and undo log deletion. This provides a concrete implementation for interacting with the mock server's RM interface, supporting the removal of the dependency on the \seata-server\ module.

mock-server/src/main/java/org/apache/seata/mockserver/call · high confidence

Added mock server implementation for testing

The mock-server module now includes a complete Java implementation for a mock Seata server, including the main entry point (MockServer), a coordinator (MockCoordinator) that handles transaction requests and responses, and a Netty-based remoting server (MockNettyRemotingServer) that registers processors for various transaction message types. This provides a standalone, in-memory mock server for testing purposes.

mock-server/src/main/java/org/apache/seata/mockserver · high confidence

Added mock server processors for handling RPC messages

The mock server now includes new processor classes (MockHeartbeatProcessor, MockOnReqProcessor, MockOnRespProcessor, MockRegisterProcessor, and MockRemotingProcessor) that handle heartbeat, request, response, and registration RPC messages. This allows the mock server to process and respond to these specific message types during testing.

mock-server/src/main/java/org/apache/seata/mockserver/processor · high confidence

Added transaction propagation support for bRPC, Alibaba Dubbo, and HSF RPC frameworks

This change introduces new integration modules that enable automatic propagation of distributed transaction context (XID and branch type) across RPC boundaries for bRPC, Alibaba Dubbo, and HSF. For bRPC, client and server interceptors are added to attach and bind transaction context. For Alibaba Dubbo, consumer and provider filters are introduced to handle transaction context in the RPC header. For HSF, consumer and provider filters are added to propagate transaction context. Each module includes corresponding unit tests to verify the transaction propagation behavior.

(repo-wide) · high confidence

Adds common fence and TCC hook infrastructure to the integration-tx-api module

The integration-tx-api module now includes a new common fence mechanism to track and clean up transaction logs, along with a TCC hook system for intercepting TCC lifecycle events. This includes the \CommonFenceConfig\ for scheduled cleanup of expired fence records, the \FenceHandler\ interface and its default implementation for managing fence states, and the \TccHook\/\TccHookManager\ for registering and executing custom logic before and after TCC prepare, commit, and rollback phases. Additionally, the module introduces an \ActionContextUtil\ to extract and manage context data from method parameters, and an \ActionInterceptorHandler\ to process these actions.

integration-tx-api/src/main/java/org/apache/seata/integration · high confidence

Centralized configuration and default value definitions for Seata components

The Seata codebase introduces a new centralized configuration system by adding \ConfigurationKeys.java\, \Constants.java\, and \DefaultValues.java\ in the common module. These files define all configuration property names, constant strings, and default values for client and server settings, replacing scattered or hardcoded configuration references. Additionally, new entity classes \GlobalLockParam\, \GlobalSessionParam\, \BranchSessionVO\, and \GlobalSessionVO\ are added to support the server console's data transfer and query operations for global and branch sessions.

common/src/main/java/org/apache/seata/common · high confidence

Database-specific SQL implementations for lock and log stores

The codebase now includes database-specific SQL implementations for lock and log stores, supporting MySQL, Oracle, PostgreSQL, H2, SQL Server, Kingbase, DM, Oceanbase, Oscar, and PolarDB-X. This change introduces new classes such as \LockStoreSql\ and \LogStoreSqls\ interfaces along with their respective database-specific implementations (e.g., \MysqlLockStoreSql\, \OracleLockStoreSql\, \SqlServerLockStoreSql\, \KingbaseLockStoreSql\, \DmLockStoreSql\, \OceanbaseLockStoreSql\, \OscarLockStoreSql\, \PolarDBXLockStoreSql\, \PostgresqlLockStoreSql\, \H2LogStoreSqls\, \DmLogStoreSqls\, \KingbaseLogStoreSqls\). These classes provide tailored SQL statements for each database type, enabling the system to interact with various databases for distributed lock and transaction log storage.

core/src/main/java/org/apache/seata/core/store/db/sql · high confidence

Introduce JWT-based authentication and security configuration for the console

The console now enforces authentication using a custom Spring Security configuration with JWT token handling. This includes a login endpoint at /api/v1/auth/login that issues JWTs, a filter to validate tokens on subsequent requests, and a security configuration that protects all endpoints by default while allowing specific paths to be ignored via configuration. Additionally, long values in JSON responses are serialized as strings to prevent JavaScript precision loss, and a REST client is configured for internal service calls.

console · high confidence

Introduce Raft-based registry service for cluster metadata discovery

The RaftRegistryProvider and RaftRegistryServiceImpl classes have been added to the discovery module, enabling the system to discover and manage Raft cluster nodes through a dedicated registry service. This implementation handles authentication, token management, and metadata synchronization across the Raft cluster, supporting both HTTP/1 and HTTP/2 watch protocols for cluster state updates.

discovery/seata-discovery-raft/src/main/java · high confidence

Introduce SAGA transactional template interface and implementation

Added the \SagaTransactionalTemplate\ interface and its \DefaultSagaTransactionalTemplate\ implementation in the \saga/seata-saga-spring\ module. This new template provides a standardized way to execute business logic with global transactions in SAGA mode, managing transaction lifecycle events such as begin, commit, and rollback, while also handling branch registration and reporting.

saga/seata-saga-spring/src/main/java/org/apache/seata/saga/engine/tm · high confidence

Introduce SQL parser core interfaces and model classes

Added new interfaces and classes in the sqlparser-core module to support SQL parsing and recognition. This includes the \EscapeHandler\ interface and its factory for handling SQL keyword escaping, recognizer interfaces (\SQLRecognizer\, \SQLInsertRecognizer\, \SQLUpdateRecognizer\, etc.) for different SQL statement types, and structural model classes (\ColumnMeta\, \IndexMeta\, \SqlMethodExpr\) to represent database metadata and expressions.

sqlparser/seata-sqlparser-core · high confidence

Introduce Saga-specific resource management and handlers

The saga/seata-saga-rm module now provides the core runtime components for Saga transaction support, including the RMHandlerSaga handler, SagaResource, and SagaResourceManager. These classes implement the resource management and commit/rollback logic for SAGA branches, and are registered via the new META-INF/services files for automatic discovery.

saga/seata-saga-rm · high confidence

Introduce TCC BusinessActionContext and parameter handling

The \integration-tx-api\ module now includes new classes to support TCC (Try-Confirm-Cancel) transactional semantics. \BusinessActionContext\ and \BusinessActionContextUtil\ provide a thread-local context for sharing business data between the TCC try and confirm/cancel phases, including automatic tracking of context mutations. \BusinessActionContextParameter\ is a new annotation that allows method parameters to be automatically extracted and passed into the action context. \ParamType\ defines the source of the parameter (method argument or field).

integration-tx-api/src/main/java/org/apache/seata/rm · high confidence

Introduce core event bus and event types for internal communication

Added a new eventing subsystem in the core module, defining a base Event interface and an EventBus interface with register, unregister, and post operations. Implemented the EventBus with a Guava-based GuavaEventBus that supports both synchronous and asynchronous posting via a thread pool. Introduced specific event classes: ExceptionEvent for error tracking, GlobalTransactionEvent for global transaction lifecycle and status updates, and RateLimitEvent for tracking rate-limiting scenarios with trace and application details.

core/src/main/java/org/apache/seata/core/event · high confidence

Introduce core metrics API interfaces and types

The metrics module now provides a foundational API for collecting and exporting metrics. New interfaces and classes have been added to support various metric types, including Counter, Gauge, Summary, and Timer, along with supporting types like Id, Measurement, and Clock. The Registry interface defines how metrics are stored and retrieved, while the Exporter interface handles the export of metric data. This establishes the core abstraction for metrics collection within the system.

metrics/seata-metrics-api · high confidence

Introduce core state machine engine interfaces and implementations

The saga engine module now includes the foundational interfaces and implementations for the state machine engine, including \StateMachineEngine\, \StateMachineConfig\, and \AsyncCallback\. This adds support for starting, forwarding, and compensating state machine instances, with explicit support for asynchronous execution via callbacks. The implementation also introduces expression evaluation capabilities, allowing dynamic evaluation of expressions and exception matching within the state machine logic.

saga/seata-saga-engine/src/main/java · high confidence

Introduce database-backed state log storage with TC reporting

A new \DbAndReportTcStateLogStore\ implementation is added to persist Saga state machine logs to a database and report status to the Transaction Coordinator (TC). This change enables durable, database-backed tracking of state machine instances and their transitions, ensuring that execution state is reliably stored and synchronized with the central transaction coordinator.

saga/seata-saga-spring/src/main/java/org/apache/seata/saga/engine/store · high confidence

Introduce default Resource Manager and Handler implementations

The rm module now includes default implementations for resource management and event handling: AbstractRMHandler and AbstractResourceManager provide base logic for branch commit/rollback and registration/reporting, while DefaultRMHandler and DefaultResourceManager act as singletons that dynamically load all registered handlers and resource managers via the EnhancedServiceLoader. A new RMClient utility initializes the Netty remoting client with these defaults, and unit tests verify the routing and behavior of these components.

rm · high confidence

Introduce enhanced service loader for extension points

The common module now includes a new service loading mechanism via the \EnhancedServiceLoader\ and supporting classes (\ExtensionDefinition\, \LoadLevel\, \Scope\). This provides a structured way to load and manage extension points with support for singleton or prototype scopes and ordered loading, improving how the framework discovers and initializes components.

common/src/main/java/org/apache/seata/common/loader · high confidence

Introduce file-based registry implementation and multi-registry support

The discovery module now includes a new file-based registry implementation (FileRegistryProvider and FileRegistryServiceImpl) that reads service group mappings and cluster addresses from configuration files, enabling local file-based service discovery. Additionally, a MultiRegistryFactory has been added to support multiple registry centers simultaneously, allowing users to configure and use multiple registry types (such as Nacos, ZK, or file) in a single deployment. The RegistryType enum has been updated to include a 'Seata' type, and the RegistryService interface has been enhanced with methods for managing alive addresses and handling offline nodes.

discovery/seata-discovery-core/src/main/java/org/apache/seata/discovery/registry · high confidence

Introduce global transaction status enumeration and database column constants

Added GlobalStatus enum to define the lifecycle states of global transactions (e.g., Committing, Rollbacking, Committed) and ServerTableColumnsName interface to standardize column names for global, branch, and lock tables. This provides a centralized reference for transaction state management and database schema mapping.

common/src/main/java/org/apache/seata/core · high confidence

Introduce new RPC protocol classes for transaction and branch management

The codebase now includes a comprehensive set of new classes for handling distributed transaction protocols. This includes base classes for transaction requests and responses (such as AbstractTransactionRequest, AbstractTransactionResponse, and their specific variants for global and branch operations), as well as concrete request/response pairs for operations like GlobalBegin, GlobalCommit, BranchRegister, BranchCommit, and BranchRollback. Additionally, utility classes for thread management and execution callbacks have been added to the common module. These changes expand the available API for managing transaction states and communicating with the transaction coordinator.

(repo-wide) · high confidence

Introduce new TM API and core transaction management classes

The tm module now includes a complete set of new classes for managing global transactions, including the DefaultGlobalTransaction implementation, a TransactionManagerHolder for dependency injection, a TMClient for network communication, and a TransactionalTemplate for executing business logic within a transactional context. This change adds the foundational API for starting, committing, and rolling back global transactions, as well as handling failure scenarios and transaction propagation.

tm · high confidence

Introduce new protocol message types and base classes for multi-version support

The core protocol package now includes a new set of abstract base classes (AbstractMessage, AbstractResultMessage, AbstractIdentifyRequest/Response) and concrete message types (e.g., RegisterRMRequest, UnregisterRMRequest, MergeMessage) to support multi-version Seata protocol communication. This change introduces a structured message hierarchy that enables version-aware serialization and deserialization, allowing the system to handle different protocol versions and message types (such as heartbeat, batch results, and merged messages) more robustly.

core/src/main/java/org/apache/seata/core/protocol · high confidence

Introduce protocol detection framework for HTTP/2 and HTTP/1.1

The core module now includes a new protocol detection system that identifies incoming connections as either HTTP/2, HTTP/1.1, or the native Seata protocol. This enables the server to route traffic to the appropriate handler pipeline, supporting both HTTP/2 and HTTP/1.1 protocols alongside the existing Seata protocol.

core/src/main/java/org/apache/seata/core/protocol/detector · high confidence

Introduce the new NamingServer module

The diff adds the core Java source files for the new NamingServer module, including the Spring Boot application entry point, web configuration, controllers for health checks and naming operations, and supporting business objects and value objects. This establishes the foundational structure for the naming server, enabling instance registration, discovery, and cluster monitoring capabilities.

namingserver/src/main/java · high confidence

Introduce versioned Seata serialization and codec framework

The \seata-serializer-seata\ module now implements a new, version-aware serialization architecture. The \SeataSerializer\ class routes serialization and deserialization to version-specific implementations (V0, V1, V2), allowing the system to support multiple protocol versions simultaneously. This is supported by a new \MessageCodecFactory\ that selects the appropriate \MessageSeataCodec\ implementation based on the message type and protocol version. The diff introduces a comprehensive set of codecs for all core protocol messages, including \RegisterTM/RM\, \UnregisterRM\, and transactional requests like \GlobalBegin/Commit/Rollback\. This change enables clients and servers to negotiate and use different serialization versions, improving backward compatibility and allowing for future protocol enhancements without breaking existing deployments.

serializer/seata-serializer-seata · high confidence

Introduce virtual-thread-backed thread pools via a new SPI-based provider

Seata now supports running on Java virtual threads. A new SPI-based provider system allows the application to switch between platform and virtual thread pools at runtime. The \threadpool\ module introduces a \ThreadPoolProvider\ interface and a \ThreadPoolExecutorFactory\ that resolves the active provider. The \threadpool-loom\ module provides the \VirtualThreadPoolProvider\ implementation, which creates \VirtualThreadPoolExecutor\ and \VirtualScheduledThreadPoolExecutor\ instances backed by virtual threads. Users can configure the thread pool type (e.g., \auto\, \platform\, or \virtual\) to enable virtual threads on JDK 21+.

threadpool, threadpool-loom · high confidence

Introduce visual designer for Seata Saga state machines

Users can now visually design and edit Seata Saga state machines using a new web-based editor. The update adds a complete visual designer featuring drag-and-drop state creation, automatic layout and connection routing, and the ability to import and export state machine definitions as JSON files.

saga/seata-saga-statemachine-designer · high confidence

Introduces core data objects and store interfaces for transaction and lock management

Added new data objects and interfaces in the core store package to support transaction and locking operations. This includes the \GlobalTransactionDO\ and \BranchTransactionDO\ data models, along with the \LogStore\ interface for persisting global and branch transaction states. Additionally, the \LockDO\ data object and the \LockStore\ interface are introduced to manage lock states, while \DistributedLockDO\ and the \DistributedLocker\ interface provide a default implementation for distributed locking.

core/src/main/java/org/apache/seata/core/store · high confidence

Introduces new domain models and interfaces for the SEATA Saga state language

The saga state language module now includes a comprehensive set of new domain interfaces and implementations that define the structure of state machines and their states. This includes core state types such as Choice, End, Loop, Script, and Service tasks, along with their corresponding implementation classes. The update also introduces enums for ExecutionStatus and StateType, constants for state machine configuration, and interfaces for managing state machine instances and their execution context. These changes provide the foundational data structures required to parse, validate, and execute complex saga workflows.

saga/seata-saga-statelang/src/main/java · high confidence

Migrate server startup to Spring Boot and introduce Raft cluster support

The server startup process has been refactored to use Spring Boot, enabling the use of \application.yaml\ for configuration and simplifying the boot sequence. This change introduces the \RaftServer\ component, which initializes the Raft consensus protocol for cluster mode, and adds SSL support for Raft node communication. Additionally, the \ClusterWatcherManager\ is introduced to handle cluster change events and manage HTTP/1.1 and HTTP/2 long-polling watchers for the watch API.

server · high confidence

Mock server adds health check and transaction control endpoints

The mock server now exposes a /help/health endpoint for status checks and /help/expect/result and /help/expect/retry endpoints to set expected transaction outcomes and retry counts, supported by new MockGlobalSession and MockBranchSession model classes.

mock-server/src/main/java/org/apache/seata/mockserver/controller, mock-server/src/main/java/org/apache/seata/mockserver/model · high confidence

Nacos configuration support added to Seata

The Nacos configuration implementation has been added to the Seata codebase, enabling users to store and retrieve configuration data from a Nacos server. This includes the core \NacosConfiguration\ class for interacting with Nacos, a \NacosConfigurationProvider\ for service discovery, and the necessary \META-INF/services\ registration file. This change allows Seata to use Nacos as a centralized configuration source.

config/seata-config-nacos/src/main · high confidence

New @SagaTransactional annotation and supporting infrastructure for Saga scenarios

Developers can now use the new @SagaTransactional annotation to mark services participating in Saga transactions, providing clearer semantic intent than the legacy @LocalTCC. This change introduces a dedicated annotation, along with the corresponding resource manager, interceptor, and parser implementations, enabling automatic proxy enhancement and compensation action support for Saga patterns.

saga/seata-saga-annotation · high confidence

New Seata benchmark CLI tool for transaction mode testing

A new command-line interface for running Seata transaction benchmarks is introduced in the test-suite. The tool supports multiple transaction modes including AT, TCC, XA, SAGA, and SAGA\_ANNOTATION, allowing users to measure performance metrics such as TPS, latency, and error rates. It provides options to configure server address, thread count, duration, and workload parameters, and can export benchmark results to CSV files.

test-suite/seata-benchmark-cli · high confidence

New Spring Boot auto-configuration and property classes for the Seata client

The Spring Boot autoconfigure module now includes a comprehensive set of new Java classes that enable automatic configuration of the Seata client. This includes a new \SeataClientEnvironmentPostProcessor\ that registers various property beans (such as \SeataProperties\, \RmProperties\, \TmProperties\, \LockProperties\, \UndoProperties\, and others) into the Spring environment. Additionally, new configuration classes like \SeataSpringFenceAutoConfiguration\ and property classes for Saga, TCC, and JSON serialization are added, along with corresponding Spring Boot metadata in \additional-spring-configuration-metadata.json\. This allows users to configure Seata client behavior via standard Spring Boot \application.properties\ or \application.yml\ files.

spring/seata-spring-autoconfigure/seata-spring-autoconfigure-client, spring/seata-spring-autoconfigure/seata-spring-autoconfigure-server · high confidence

New Spring integration components for transaction management and data source proxying

The Spring module now includes new classes to support Spring's dependency injection and AOP infrastructure. This includes \SpringFenceConfig\ and \SpringFenceHandler\ for managing transaction fences, \GlobalTransactionScanner\ and related interceptors (e.g., \AspectTransactionalInterceptor\, \AdapterSpringSeataInterceptor\) for handling global transactions, and \SeataAutoDataSourceProxyCreator\ with its associated advisor and registrar to automatically wrap \DataSource\ beans with Seata proxies. These additions provide the necessary hooks for Spring to manage distributed transactions and data source proxying.

spring/seata-spring · high confidence

New common result model classes for API responses

Added new classes in the \org.apache.seata.common.result\ package to standardize API responses: \Result\ provides a base structure with code and message; \SingleResult\ wraps a single data object; \PageResult\ handles paginated lists with page/size/total metadata; \Code\ defines standard response codes (200, 500, 401); and \BaseParam\ provides common pagination parameters. These classes replace the previous ad-hoc result handling with a consistent, reusable model for success and error responses across the application.

common/src/main/java/org/apache/seata/common/result · high confidence

New common utilities for object holding and file loading

The common module introduces two new utility classes: ObjectHolder, a singleton enum that provides a thread-safe map for storing and retrieving objects by key or class type, and FileLoader, a class that loads files from the file system by attempting multiple path strategies (project directory and system path). These additions provide new capabilities for managing shared state and accessing local files within the Seata framework.

common/src/main/java/org/apache/seata/common/holder, common/src/main/java/org/apache/seata/common/io · high confidence

New common utility classes for locking, data conversion, and HTTP client

The common module introduces a suite of new utility classes to improve code reuse and safety. A new ResourceLock class provides a try-with-resources compatible wrapper around ReentrantLock, simplifying lock management. A collection of utility classes (ArrayUtils, BeanUtils, BlobUtils, BufferUtils, CollectionUtils, CompressUtil, ConfigTools, CycleDependencyHandler, DateUtil, DurationUtil, HttpClientUtil, IOUtil, and IdWorker) are added to the org.apache.seata.common.util package, offering standardized implementations for array and collection handling, bean-to-map conversion, GZIP compression, RSA encryption/decryption, safe cyclic-reference handling in stringification, date/duration parsing, and HTTP/1.1 client operations via OkHttp. These utilities replace scattered or ad-hoc implementations with a consistent, reusable API across the Seata codebase.

common/src/main/java/org/apache/seata/common/util · high confidence

New configuration, compression, and logging utilities

The codebase introduces new abstractions and implementations for configuration, data compression, and logging. In the config module, a new \ConfigNotFoundException\ is added, alongside interfaces and implementations (\FileConfig\, \SimpleFileConfig\, \YamlFileConfig\) that enable loading configuration from files, including YAML support. In the core module, a new \Compressor\ interface and \CompressorFactory\ are introduced, supporting multiple compression algorithms (GZIP, ZIP, SEVENZ, BZIP2, LZ4, DEFLATER, ZSTD) via a type enum. Additionally, a new \StackTraceLogger\ utility is added to the logging layer, which conditionally appends stack traces to log messages based on a configurable exception rate.

(repo-wide) · high confidence

New constant definitions for core components

Added new constant interfaces and classes to the core module, including ClientTableColumnsName for undo log database columns, ConfigurationKeys (now deprecated in favor of the common module), DBType for supported database types, DubboConstants for RPC context, RedisKeyConstants for transaction and lock keys, and RpcMessageConstants for RPC headers. These provide centralized string constants for internal use across the Seata framework.

core/src/main/java/org/apache/seata/core/constants · high confidence

New core model classes for transaction and lock state management

Added new core model classes to the Seata framework, introducing enums for branch status (BranchStatus) and lock status (LockStatus), along with interfaces for resource management (ResourceManager, TransactionManager) and configuration (GlobalLockConfig). These changes provide the foundational data structures and interfaces needed to track the state of global and branch transactions, as well as distributed locks, enabling more robust transaction lifecycle management.

core/src/main/java/org/apache/seata/core/model · high confidence

New default client configuration files for Seata

Two new default configuration files, \file.conf\ and \registry.conf\, are added to \script/client/conf\. These provide out-of-the-box settings for transport, service groups, and registry options (file, Nacos, Zookeeper, Consul, etc.), allowing users to quickly configure the Seata client without manually creating these files.

script/client/conf · high confidence

New diagram-js based Saga state machine designer

The Seata Saga state machine designer has been refactored to use the diagram-js framework instead of the discontinued and vulnerable GGEditor. This change introduces a new visual designer for creating and editing state machines, with configuration files (.babelrc, .eslintrc.json, webpack.config.js) and documentation (README.md, README-zh.md) provided to support the new architecture. Users will experience improved security and a modernized development environment for state machine design.

saga · medium confidence

New exception hierarchy and centralized error handling for transaction operations

The core module now introduces a dedicated exception hierarchy under the \org.apache.seata.core.exception\ package to standardize error handling for distributed transactions. A new \TransactionException\ base class and specific subclasses (\GlobalTransactionException\, \BranchTransactionException\, \TmTransactionException\, \RmTransactionException\) provide structured error codes and messages for transactional failures. Additionally, an \AbstractExceptionHandler\ template is added to centralize RPC error handling, automatically mapping exceptions to appropriate response states and logging detailed error information for scenarios like lock key conflicts or RPC failures.

core/src/main/java/org/apache/seata/core/exception · high confidence

New load balancing strategies for service discovery

The discovery module now includes a new load balancing package with five implementations: ConsistentHashLoadBalance, LeastActiveLoadBalance, RandomLoadBalance, RoundRobinLoadBalance, and XIDLoadBalance, all implementing the LoadBalance interface and registered via LoadBalanceFactory. This provides users with multiple strategies to distribute requests across available service instances.

discovery/seata-discovery-core/src/main/java/org/apache/seata/discovery/loadbalance · high confidence

New process control interfaces and implementations for the SEATA Saga module

The saga module introduces a new set of core interfaces and implementations to manage process control, including \ProcessContext\, \ProcessController\, \ProcessRouter\, and \Instruction\. This change adds a hierarchical context for managing variables locally and globally, supports both synchronous and asynchronous event handling via \DirectEventBus\ and \AsyncEventBus\, and provides default handlers for routing and processing business logic. These components enable more flexible and extensible control flow for state machine execution within the SEATA Saga framework.

saga/seata-saga-processctrl · high confidence

Register new interceptor and remoting parsers via SPI

The integration-tx-api module now registers specific interceptor and remoting parsers through Java SPI configuration files. The new file META-INF/services/org.apache.seata.integration.tx.api.interceptor.parser.InterfaceParser declares GlobalTransactionalInterceptorParser and CombineTransactionalInterceptorParser, while META-INF/services/org.apache.seata.integration.tx.api.remoting.RemotingParser declares DubboRemotingParser, SofaRpcRemotingParser, and HSFRemotingParser. This enables the framework to automatically discover and utilize these components for transaction interception and remote communication.

integration-tx-api/src/main/resources · high confidence

Saga engine introduces Spring EL expression support

The Saga engine now supports Spring Expression Language (Spring EL) for evaluating expressions within the workflow. This change adds a new \SpringELExpression\ implementation and its corresponding \SpringELExpressionFactory\, enabling the engine to parse and evaluate Spring EL syntax. The factory configures a restricted evaluation context that denies all type lookups while allowing bean resolution from the Spring ApplicationContext, ensuring secure and controlled expression evaluation.

saga/seata-saga-spring/src/main/java/org/apache/seata/saga/engine/expression · high confidence

Spring Bean service invoker implementation added

A new SpringBeanServiceInvoker class was introduced in the saga engine's invoker package. This component enables the Seata saga engine to invoke Spring-managed beans as service tasks, supporting both synchronous and asynchronous execution via a thread pool, along with configurable retry logic and method caching.

saga/seata-saga-spring/src/main/java/org/apache/seata/saga/engine/invoker · high confidence

Spring Boot auto-configuration for Seata properties and environment initialization

The Seata Spring Boot starter now includes a new \SeataCoreAutoConfiguration\ that registers the \SpringApplicationContextProvider\ bean, and a \SeataCoreEnvironmentPostProcessor\ that initializes a mapping of configuration prefixes to their corresponding Spring \@ConfigurationProperties\ classes (such as \LogProperties\, \ShutdownProperties\, \TransportProperties\, and various config/registry property classes). Additionally, a \SeataPropertiesLoader\ is introduced to load old-style Seata configuration files and merge them into the Spring environment, while \StarterConstants\ defines the configuration key prefixes. This change enables automatic binding of Seata settings from \application.properties\ or \application.yml\ and ensures legacy configuration files are still respected during startup.

spring/seata-spring-autoconfigure/seata-spring-autoconfigure-core · high confidence

Support for custom configuration providers

Users can now define and use custom configuration providers by implementing the ConfigurationProvider interface and registering it via the ServiceLoader mechanism. The diff introduces CustomConfigurationProvider, which loads a configuration based on a 'name' property, and includes test implementations (CustomConfigurationForTest, CustomConfigurationProviderForTest) to validate the new behavior. This allows for flexible, user-defined configuration sources beyond the built-in types.

config/seata-config-custom · high confidence

TCC transactional support with new annotations and resource management

The TCC module now provides a complete implementation for managing TCC (Try-Confirm-Cancel) transactional resources. This includes new core classes such as TCCResource, TCCResourceManager, and RMHandlerTCC to handle resource registration and lifecycle. The system introduces the @LocalTCC and @TwoPhaseBusinessAction annotations to mark TCC services and define commit/rollback methods. A dynamic proxy mechanism via TccActionInterceptorHandler intercepts TCC calls to manage transaction contexts. Additionally, JSON parsing capabilities are provided through FastJsonParser, GsonJsonParser, and JacksonJsonParser, all of which are marked as deprecated in favor of a common core module. Service discovery is configured via SPI files for ResourceManager and InterfaceParser.

tcc · high confidence

Security

Introduce new serialization architecture with security registry and service loader

The serialization module has been restructured with a new \Serializer\ interface and a \SerializerServiceLoader\ that dynamically loads serializer implementations. A \SerializerSecurityRegistry\ has been added to enforce a whitelist of allowed classes for deserialization, explicitly denying dangerous classes like \java.lang.Runtime\ and \javax.naming.InitialContext\ to mitigate deserialization vulnerabilities. The \SerializerType\ enum now includes entries for \FURY\ and \FORY\, and the loader supports aliasing \fury\ to \fory\. This change enhances security by restricting deserialized classes and provides a more flexible, extensible serialization framework.

core/src/main/java/org/apache/seata/core/serializer · high confidence

Architecture

Refactored Druid SQL parser with classloader isolation and new base classes

The Druid SQL parser module was refactored to improve classloader isolation and introduce a new base recognizer structure. A new \BaseRecognizer\ abstract class was added to handle common SQL parsing logic, including WHERE clause and LIMIT/OBJECT handling. The \DefaultDruidLoader\ was introduced to load the embedded Druid JAR, and a \DruidIsolationClassLoader\ was created to isolate Druid classes from the main application classpath, preventing potential conflicts. Additionally, a \DruidDbTypeAdapter\ was added to map database types (e.g., PolarisDB X to MySQL). The \DruidSQLRecognizerFactoryImpl\ was updated to use the new base classes and handle various SQL statement types, including Oracle multi-insert statements. The \SupportSqlWhereMethod\ class was added to manage supported SQL methods in WHERE clauses.

sqlparser/seata-sqlparser-druid · high confidence

Refactored RPC core with new interfaces and implementations

The RPC core module has been refactored to introduce a new set of interfaces and implementations for message handling and remoting. New abstractions include \ClientMessageListener\, \ClientMessageSender\, \ServerMessageListener\, and \ServerMessageSender\ to decouple message processing logic. The \RemotingClient\ and \RemotingServer\ interfaces now define the primary communication contracts, while \AbstractNettyRemoting\ provides the base implementation for Netty-based remoting. Additionally, a \ShutdownHook\ utility was added to manage the lifecycle of disposable resources, and \RpcContext\ was introduced to manage RPC state per channel. These changes streamline the internal architecture, making the RPC layer more modular and easier to extend.

core/src/main/java/org/apache/seata/core/rpc · high confidence

Refactored data source and connection proxy architecture

The rm-datasource module has been refactored to introduce a new layered proxy architecture. A new base class, BaseDataSourceResource, has been added to manage resource states and caching. The existing DataSourceProxy and related classes have been restructured into abstract base classes (AbstractDataSourceProxy, AbstractConnectionProxy, AbstractStatementProxy, etc.) to support specific implementations. Additionally, new handlers (RMHandlerAT, RMHandlerXA) and a global lock execution template (GlobalLockTemplate) have been introduced to better separate AT and XA transaction handling and global lock execution logic.

rm-datasource/src/main/java · high confidence

Behavioural changes

Add SPI service providers for Seata compatibility

New Service Provider Interface (SPI) configuration files have been added to enable compatibility with the Seata distributed transaction framework. Specifically, the system now registers \SagaResourceManager\ and \TCCResourceManager\ for resource management, \TccActionInterceptorParser\ and \GlobalTransactionalInterceptorParser\ for interceptor parsing, and \LocalTCCRemotingParser\ for remoting operations. These changes allow the application to automatically discover and utilize Seata's transactional capabilities without manual configuration.

compatible/src/main/resources · high confidence

Add backward-compatible TCC remoting parser for legacy @LocalTCC annotations

A new \LocalTCCRemotingParser\ class has been added to the compatible module to maintain backward compatibility with Seata versions prior to 2.1. This parser enables the system to recognize and process the legacy \@LocalTCC\ annotation on service implementations and interfaces, ensuring that older TCC-based transactions continue to function correctly during upgrades.

compatible/src/main/java/io/seata/rm/tcc/remoting · high confidence

Add compatibility layer for Seata integration-tx-api and Spring modules

New adapter classes are added to the \io.seata.integration.tx\ package to bridge the legacy \io.seata\ API with the new \org.apache.seata\ implementation. This includes \ActionContextUtil\ and \ActionInterceptorHandler\ to handle TCC context extraction and annotation processing, \GlobalTransactionalInterceptorHandler\ and \GlobalTransactionalInterceptorParser\ to manage global transactional aspects, and thin interface wrappers for JSON and remoting parsers. These changes ensure backward compatibility for existing applications using the older Seata transaction APIs.

compatible/src/main/java/io/seata/integration/tx · high confidence

Add compatibility layer for io.seata BusinessActionContext

A new TCC resource manager implementation is added to the compatible module, providing a bridge that converts the newer io.seata.rm.tcc.api.BusinessActionContext into the legacy io.seata.rm.tcc.api.BusinessActionContext. This ensures that components relying on the older context class continue to function correctly during the transition, resolving the incompatibility issue.

compatible/src/main/java/io/seata/rm/tcc · medium confidence

Add deprecated compatibility shims for the TM module

The \compatible\ module now includes a set of new Java classes in the \io.seata.tm\ and \io.seata.tm.api\ packages, including \TMClient\, \DefaultFailureHandlerImpl\, \DefaultGlobalTransaction\, \FailureHandler\, \GlobalTransaction\, \GlobalTransactionContext\, \GlobalTransactionRole\, \TransactionalTemplate\, \Propagation\, and \SuspendedResourcesHolder\. All these classes are marked as \@Deprecated\ and serve as compatibility wrappers that delegate to the corresponding \org.apache.seata\ implementations, ensuring backward compatibility for existing users of the \io.seata\ package namespace.

compatible/src/main/java/io/seata/tm · high confidence

Add structured configuration processors for YAML and properties files

The config module now introduces a new processor architecture in the \org.apache.seata.config.processor\ package to handle configuration files. A \ConfigDataType\ enum and \ConfigProcessor\ utility were added to resolve and route configuration data based on file type (YAML or properties). New \Processor\ interface and implementations (\ProcessorProperties\, \ProcessorYaml\) enable standardized parsing of these formats, with YAML processing secured via \SafeConstructor\ to prevent unsafe deserialization vulnerabilities.

config/seata-config-core/src/main/java/org/apache/seata/config/processor · high confidence

Added deprecated compatibility wrappers for core Seata classes

The \compatible\ module now includes a set of deprecated wrapper classes and interfaces that delegate to the \org.apache.seata\ equivalents. This includes \AuthSigner\, \Compressor\, \DubboConstants\, \ContextCore\, \RootContext\, \TransactionException\, \TransactionExceptionCode\, \BranchType\, \GlobalStatus\, \ResourceManager\, \RmNettyRemotingClient\, \TmNettyRemotingClient\, \Serializer\, \LockStoreSql\, \LogStoreSqls\, and \RMClient\. These wrappers are intended to maintain backward compatibility for existing codebases while encouraging migration to the new \org.apache.seata\ package.

compatible/src/main/java/io/seata/core · high confidence

Added deprecated compatibility wrappers for string utilities and lock strategy mode

New files were added to the common module to provide backward compatibility: a deprecated \LockStrategyMode\ enum and a \StringUtils\ utility class. The \StringUtils\ class acts as a compatibility layer for the \dubbo-filter-seata\ integration, delegating all string operations to the corresponding methods in \org.apache.seata.common.util.StringUtils\. These additions support lower versions of SPI and ensure compatibility with the integration-tx-api and spring modules.

compatible/src/main/java/io/seata/common · high confidence

Added license text files for Apache 1.1, CDDL, EPL, HdrHistogram, LatencyUtils, and Python

The distribution package now includes the full text of several open-source licenses to ensure compliance and transparency. Specifically, the repository adds license files for Apache-1.1, CDDL+GPL-1.1, CDDL-1.0, EPL-1.0, EPL-2.0, HdrHistogram-BSD-2-Clause, LatencyUtils-BSD-2-Clause, and Python-2.0. These files provide the legal terms under which these respective components are distributed, allowing users to review the licensing conditions for each component.

distribution/licenses · high confidence

Database-backed state machine configuration and resource utilities added

The \DbStateMachineConfig\ class was added to \saga/seata-saga-spring\, providing a Spring-based configuration for database-backed state machines, including initialization of the state log store, state language store, and transactional template. Additionally, \ResourceUtil\ was added to \saga/seata-saga-spring\ to handle Spring resource loading for state language files. These changes support the removal of Spring dependencies from the core engine by moving Spring-specific wiring and resource handling into the Spring module.

saga/seata-saga-spring/src/main/java/org/apache/seata/saga/engine/config, saga/seata-saga-spring/src/main/java/org/apache/seata/saga/engine/utils · medium confidence

Deprecate the io.seata.config package

The configuration-related classes in the io.seata.config package, including the Configuration interface, AbstractConfiguration, FileConfiguration, and related event/listener types, are now marked as @Deprecated. This signals that the existing configuration API is being phased out in favor of a newer, non-deprecated configuration system.

config/seata-config-core/src/main/java/io · high confidence

Deprecated TCC API classes added for backward compatibility

The \io.seata.rm.tcc.api\ package now includes \BusinessActionContext\, \BusinessActionContextParameter\, \LocalTCC\, and \TwoPhaseBusinessAction\ as deprecated wrappers or annotations. These additions provide a compatibility layer for existing TCC (Try-Confirm-Cancel) implementations, ensuring that older code relying on these specific classes and annotations continues to function while signaling that these APIs are superseded.

compatible/src/main/java/io/seata/rm/tcc/api · high confidence

Deprecated compatibility shims for HTTP integration components

Added deprecated wrapper classes in the \io.seata.integration.http\ package (\DefaultHttpExecutor\, \SeataWebMvcConfigurer\, \TransactionPropagationInterceptor\, \JakartaSeataWebMvcConfigurer\, and \JakartaTransactionPropagationInterceptor\) that delegate to the corresponding \org.apache.seata\ implementations. These shims maintain backward compatibility for existing code while signaling that the \io.seata\ package is deprecated in favor of the \org.apache.seata\ namespace.

compatible/src/main/java/io/seata/integration/http · high confidence

Deprecated legacy Seata RM datasource classes for backward compatibility

The \compatible\ module now includes a set of deprecated wrapper classes and interfaces that delegate to the new \org.apache.seata\ package. Specifically, \DataSourceProxy\, \DataSourceProxyXA\, \InsertExecutor\, \JacksonSerializer\, \KryoTypeSerializer\, and \ProtostuffDelegate\ are added to the \io.seata.rm.datasource\ hierarchy. These classes implement the corresponding interfaces from \org.apache.seata.rm.datasource\, providing a compatibility layer for existing users while the main implementation has moved to the new package.

compatible/src/main/java/io/seata/rm/datasource · high confidence

Deprecated legacy discovery interfaces for backward compatibility

Added deprecated wrapper interfaces in the \io.seata.discovery\ package (\LoadBalance\, \RegistryProvider\, and \RegistryService\) that extend the corresponding \org.apache.seata\ interfaces. These changes provide backward compatibility for existing SPI implementations while signaling that the \io.seata\ package is deprecated in favor of the new \org.apache.seata\ namespace.

compatible/src/main/java/io/seata/discovery · high confidence

Deprecated legacy gRPC interceptor classes

The legacy gRPC interceptor classes, ClientTransactionInterceptor and ServerTransactionInterceptor, have been marked as deprecated. These classes now extend the corresponding implementations from the org.apache.seata package, indicating a migration path for users to adopt the updated API.

compatible/src/main/java/io/seata/integration/grpc · high confidence

Enforce thread pool management and code style standards

The project now enforces structured thread pool management by prohibiting direct creation of \Thread\, \Executors\, or \ThreadPoolExecutor\ instances in production code, requiring the use of \ThreadPoolExecutorFactory\ instead. Additionally, new Checkstyle rules and an IDE code style configuration have been added to standardize naming conventions, formatting, and suppress rules for generated parser files.

style · medium confidence

Expanded database and serialization support via service provider registrations

The rm-datasource module now registers service providers for a broader range of databases and serialization formats. New database support includes Kingbase, OceanBase, and Shentong, alongside existing MySQL, Oracle, PostgreSQL, SQL Server, MariaDB, PolarDB-X, DM, and Oscar. Additionally, the system now supports Fastjson2, Jackson, Gson, and Fory for JSON serialization, and introduces Fory and Fastjson2 as undo log parsers, enabling more flexible data handling and storage options.

rm-datasource/src/main/resources · high confidence

Hessian serializer adds field count capping and class whitelisting

The Hessian serializer module now includes a new FieldCountCappingDeserializer that rejects excessively large field counts to mitigate out-of-memory risks from malicious Hessian class definitions. Additionally, the HessianSerializerFactory enforces a serialization whitelist and blacklist via the SerializerSecurityRegistry, restricting which classes can be deserialized. These changes improve the security posture of the Hessian serialization path by limiting dangerous class loading and preventing resource exhaustion attacks.

serializer/seata-serializer-hessian · high confidence

Improved MySQL JDBC driver loading with classloader isolation

The database store module now uses a dedicated classloader to load MySQL JDBC drivers, addressing issues where drivers could not be found or loaded correctly. This change ensures that the appropriate database driver dependencies are properly recognized, resolving previous errors related to missing or misconfigured MySQL driver classes.

core/src/main/java/org/apache/seata/core/store/db · medium confidence

Nacos registry implementation refactored into new provider and service classes

The Nacos registry functionality has been restructured into two new classes: NacosRegistryProvider, which implements the RegistryProvider interface to supply the Nacos registry service, and NacosRegistryServiceImpl, which implements the RegistryService interface to handle Nacos-specific registration, unregistration, subscription, unsubscription, and lookup operations. This change introduces a provider-based architecture for the Nacos discovery module.

discovery/seata-discovery-nacos/src/main/java · high confidence

Refactored configuration core with new caching and listener interfaces

The configuration core module has been refactored to introduce a new \ConfigurationCache\ that wraps the original configuration implementation with a proxy, enabling automatic caching of configuration values. This change introduces new interfaces such as \ConfigurationChangeListener\ and \ConfigChangeListener\ to handle configuration change events, and adds an \AbstractConfiguration\ base class to standardize type-specific getter methods (short, int, long, boolean, duration). The \ConfigurationFactory\ now builds a cached configuration instance by default, which should improve performance for repeated configuration reads while maintaining backward compatibility with existing configuration sources like file-based configs.

config/seata-config-core/src/main/java/org/apache/seata/config · medium confidence

Refactored context storage with pluggable implementations

The core context storage mechanism has been refactored to support pluggable implementations for managing thread-local state. A new \ContextCore\ interface and \ContextCoreLoader\ allow the runtime to select between \ThreadLocalContextCore\ and \FastThreadLocalContextCore\ (leveraging Netty's \FastThreadLocal\) for storing transaction identifiers and configuration. This change provides a more flexible and potentially higher-performance way to access global lock configurations and transaction IDs (\XID\) across the application.

core/src/main/java/org/apache/seata/core/context · high confidence

Seata Spring Boot starter auto-configuration is refactored into dedicated components

The Seata Spring Boot starter has been refactored to replace the previous monolithic auto-configuration with four distinct, specialized components: SeataAutoConfiguration, SeataDataSourceAutoConfiguration, SeataHttpAutoConfiguration, and SeataSagaAutoConfiguration. This change improves compatibility with Spring Boot 4.x by explicitly supporting the new \org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration\ alongside the existing Spring Boot 2.x/3.x \DataSourceAutoConfiguration\. Users will see these four auto-configuration classes being registered via \spring.factories\ and \AutoConfiguration.imports\, each handling a specific aspect of Seata integration: core transaction scanning, data source proxying, HTTP interceptor, and Saga state machine engine setup.

spring/seata-spring-boot-starter · high confidence

Spring integration for state machine configuration

A new DefaultStateMachineConfig class has been added to the saga engine, providing Spring-specific initialization that registers the Spring EL expression factory and Spring Bean service invoker, enabling seamless integration with the Spring application context.

saga/seata-saga-spring/src/main/java/org/apache/seata/saga/engine/impl · medium confidence

Standardize Maven environment and tooling configuration

The project now enforces a consistent build environment and tooling setup. A new .mvn/jvm.config file sets the PMD language to English, ensuring consistent diagnostic messages. Additionally, the Maven wrapper is configured to use a specific, pinned version of Maven (3.9.5) and the Maven wrapper JAR (3.1.1), ensuring all developers and CI systems use the same build tool version.

.mvn · high confidence

Standardized Seata exception hierarchy and error codes

The \org.apache.seata.common.exception\ package has been restructured with a new, standardized exception hierarchy. A central \FrameworkException\ class now serves as the base for most framework-level errors, utilizing a new \FrameworkErrorCode\ enum to provide structured error codes and messages. This change introduces several new specific exception types, including \AuthenticationFailedException\, \DataAccessException\, \EurekaRegistryException\, \JsonParseException\, \NotSupportYetException\, \ParseEndpointException\, \RedisException\, \RepeatRegistrationException\, \RetryableException\, \SeataRuntimeException\, \ShouldNeverHappenException\, \SkipCallbackWrapperException\, and \StoreException\. Additionally, utility classes \ExceptionUtil\ and \ResourceBundleUtil\ have been added to support error message formatting and resource bundle management.

common/src/main/java/org/apache/seata/common/exception · high confidence

Unified JSON serialization and parsing for saga state machine language

The saga state language module now supports multiple JSON serialization and parsing implementations. Users can choose between Fastjson, Fastjson2, Jackson, and Gson for serializing state machine definitions, and between Fastjson and Jackson for parsing. Additionally, rule-based validation for state machine definitions is now explicitly registered via service provider interfaces, ensuring that state name existence, finite termination, and no recursive sub-state-machine rules are automatically applied.

saga/seata-saga-statelang/src/main/resources · medium confidence

Updated license and notice files for distribution packages

The distribution directory now includes updated LICENSE and NOTICE files for the main project, naming server, and server components. These files contain the Apache License 2.0 text and attribution notices for third-party dependencies such as Spring Boot, Netty, and Jackson. The update ensures proper legal compliance and accurate copyright attribution for all included software.

distribution · high confidence

Updated service provider files to use org.apache.seata package names

The META-INF/services files for config, processor, registry, and load balance components have been updated to reference the new org.apache.seata package structure. This change aligns the service provider interfaces with the reorganized package names, ensuring the framework can correctly discover and load the appropriate implementations for configuration, processing, and service discovery.

(repo-wide) · high confidence

Test coverage

Add unit tests for Zookeeper registry service; Add unit tests for the Code class; Added English error code resource file for testing; Added Nacos configuration integration tests; Added Nacos registry and config test resources; Added comprehensive unit tests for RaftRegistryServiceImpl; Added mock implementations for JDBC components; Added test configuration files and service provider definitions for Nacos config module; Added test configuration files for Raft-based discovery; Added test configuration files for Seata config-core; Added test configuration files for Seata discovery and datasource modules; Added test configuration files for core module unit tests; Added test configuration files for discovery and config backends; Added test configuration files for integration tests; Added test coverage for custom registry provider; Added test resources for service provider interfaces; Added test resources for the Hello SPI interface; Added test support for RegistryFactory; Added tests for Oracle data types and MySQL update joins; Added tests for ResourceIdInitializer; Added tests for the Seata Saga Spring module; Added unit and integration tests for Nacos configuration; Added unit and integration tests for the etcd3 discovery module; Added unit tests for ConsoleRemotingFilter; Added unit tests for Consul configuration; Added unit tests for Consul registry service; Added unit tests for JdbcUtils and XAUtils; Added unit tests for Nacos registry implementation; Added unit tests for ObjectHolder and file-based configuration readers; Added unit tests for RPC status tracking; Added unit tests for SQL parsing and metadata structures; Added unit tests for Seata common exception classes; Added unit tests for Zookeeper configuration; Added unit tests for common utility classes; Added unit tests for configuration processing components; Added unit tests for core module components; Added unit tests for data source executors; Added unit tests for discovery and load balancing components; Added unit tests for low-coverage saga engine components; Added unit tests for protobuf serialization converters; Added unit tests for rm-datasource components; Added unit tests for the Apollo configuration module; Added unit tests for the ResourceLock class; Added unit tests for the Seata Saga state language module; Added unit tests for the compatible module.

Dependencies

Updated project dependencies and build configuration

This change updates the Maven build configuration and dependency management for the Seata project. The \build/pom.xml\ file defines the base build structure, including plugin versions and properties, while \bom/pom.xml\ serves as a Bill of Materials to manage transitive dependency versions. The \all/pom.xml\ aggregates all Seata modules into a single artifact, and \compatible/pom.xml\ provides a compatibility layer for the \io.seata\ namespace. Additionally, the \compressor/pom.xml\ and its sub-modules (e.g., \seata-compressor-all\, \seata-compressor-bzip2\) are updated to manage compression-related dependencies. These changes ensure consistent dependency versions and build settings across the project.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 48.

Lenses

  • Code Health 74
  • Architecture 99
  • Maturity 70
  • Readiness 49
  • Security 52
  • Domain Modelling 100
  • Accessibility 37

Changes since last survey

  • 300 commits — 218 feature/other, 82 fixes

By area

  • changes/en-us — 75 commits
  • rm-datasource/src — 30 commits
  • core/src — 19 commits
  • console/src — 18 commits
  • server/src — 18 commits
  • (root) — 14 commits
  • .github/workflows — 11 commits
  • common/src — 9 commits
  • namingserver/src — 8 commits
  • compatible/src — 7 commits
  • integration-tx-api/src — 7 commits
  • test-suite/seata-benchmark-cli — 6 commits
  • build/pom.xml — 4 commits
  • saga/seata-saga-engine — 3 commits
  • seata-spring-autoconfigure/seata-spring-autoconfigure-server — 3 commits
  • serializer/seata-serializer-fury — 3 commits
  • compatible/README.md — 2 commits
  • config/seata-config-core — 2 commits
  • console/pom.xml — 2 commits
  • discovery/seata-discovery-etcd3 — 2 commits

Notable commits

  • fix: bugfix : fastjson2 JSONB concurrent ref deserialization (#8160)
  • fix: bugfix: fix comma missing (#7856)
  • fix: bugfix: Avoid null advice during AOT proxy creation (#8106)
  • fix: bugfix: Github Action workflow does not run the corresponding Kotlin test (#7482)
  • fix: bugfix: Use xaActive to determine whether xaResource needs to execute the end method (#7708)
  • fix: bugfix: adjust the order of org.apache.seata.saga.rm.SagaResourceManage (#7622)
  • fix: bugfix: consoleApiService that could not be found (#7960)
  • fix: bugfix: correct server port and naming server port (#7879)
  • fix: bugfix: different element order in two lists causes failure to set the index as primary key index (#7965)
  • fix: bugfix: empty jacoco report on local when jdk above 17 (#7956)
  • fix: bugfix: ensure the Jakarta-related package paths are correct (#7940)
  • fix: bugfix: ensure visibility of rm and The methods in MockTest are executed in order (#7662)
  • fix: bugfix: fix Byte[] type to ensure the correct primary key value. (#7761)
  • fix: bugfix: fix DM transaction rollback not using database auto-increment primary keys (#7643)
  • fix: bugfix: fix Groovy dependency conflict causing saga test failure (#8134)
  • fix: bugfix: fix IllegalArgumentException when GET request has request body (#8035)
  • fix: bugfix: fix KingbaseUndoLogManager INSERT_UNDO_LOG_SQL error (#7929)
  • fix: bugfix: fix NPE when server-side filter is disabled and filter chain is null. (#7563)
  • fix: bugfix: fix PK extraction for batch inserts with SQL functions (#8124)
  • fix: bugfix: fix SerialArray equals() method for multi-dimensional array comparison (#7471)
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

apache/incubator-seata was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 6 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 21820b6da635db0ee84067e09cb879c2567fe043 — the exact code this score is about.
  • Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer latest.