You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@seata.apache.org by ji...@apache.org on 2025/08/06 02:06:19 UTC

(incubator-seata-website) branch docusaurus updated: doc: add release 2.5.0 docs (#1006)

This is an automated email from the ASF dual-hosted git repository.

jimin pushed a commit to branch docusaurus
in repository https://gitbox.apache.org/repos/asf/incubator-seata-website.git


The following commit(s) were added to refs/heads/docusaurus by this push:
     new cad267cd4d3 doc: add release 2.5.0 docs (#1006)
cad267cd4d3 is described below

commit cad267cd4d3093473f5e1a61862d0d45bac77e7b
Author: Jingliu <92...@qq.com>
AuthorDate: Wed Aug 6 10:06:16 2025 +0800

    doc: add release 2.5.0 docs (#1006)
---
 .../version-v2.5.json                              |   93 +
 .../version-v2.5/dev/domain/overviewDomainModel.md |   59 +
 .../version-v2.5/dev/domain/rm.md                  |    9 +
 .../version-v2.5/dev/domain/tc.md                  |    9 +
 .../version-v2.5/dev/domain/tm.md                  |    9 +
 .../version-v2.5/dev/mode/at-mode.md               |  213 ++
 .../version-v2.5/dev/mode/saga-mode.md             |   54 +
 .../version-v2.5/dev/mode/tcc-mode.md              |   30 +
 .../version-v2.5/dev/mode/xa-mode.md               |  107 +
 .../version-v2.5/dev/seata-mertics.md              |  174 +
 .../committer-guide/label-an-issue-guide_dev.md    |   35 +
 .../committer-guide/new-committer_dev.md           |   72 +
 .../committer-guide/website-guide_dev.md           |   10 +
 .../contributor-guide/new-contributor-guide_dev.md |   42 +
 .../reporting-security-issues_dev.md               |   25 +
 .../contributor-guide/test-coverage-guide_dev.md   |   40 +
 .../version-v2.5/developers/guide_dev.md           |  215 ++
 .../version-v2.5/developers/intro.md               |   47 +
 .../version-v2.5/developers/maturity.md            |   88 +
 .../developers/ppmc-guide/new-ppmc_dev.md          |   24 +
 .../ppmc-guide/nominate-committer_dev.md           |  230 ++
 .../developers/ppmc-guide/nominate-ppmc_dev.md     |  175 +
 .../developers/release-guide/release-guide_dev.md  |  581 ++++
 .../version-v2.5/developers/team/team.md           |   13 +
 .../version-v2.5/ops/deploy-by-docker-142.md       |  118 +
 .../ops/deploy-by-docker-compose-142.md            |  336 ++
 .../version-v2.5/ops/deploy-by-docker-compose.md   |  492 +++
 .../version-v2.5/ops/deploy-by-docker.md           |  115 +
 .../version-v2.5/ops/deploy-by-helm.md             |   55 +
 .../version-v2.5/ops/deploy-by-kubernetes.md       |  178 +
 .../version-v2.5/ops/deploy-guide-beginner.md      |  260 ++
 .../version-v2.5/ops/deploy-ha.md                  |  149 +
 .../version-v2.5/ops/deploy-server-raft.md         |   84 +
 .../version-v2.5/ops/deploy-server.md              |   53 +
 .../ops/multi-configuration-isolation.md           |   64 +
 .../version-v2.5/ops/upgrade.md                    |  182 +
 .../version-v2.5/overview/faq.md                   |  532 +++
 .../version-v2.5/overview/history.md               |   13 +
 .../version-v2.5/overview/terminology.md           |   15 +
 .../version-v2.5/overview/what-is-seata.md         |  259 ++
 .../version-v2.5/release-notes.md                  | 3526 ++++++++++++++++++++
 .../version-v2.5/security/secret-key.md            |   27 +
 .../version-v2.5/user/api.md                       |  402 +++
 .../version-v2.5/user/apm/prometheus.md            |   79 +
 .../version-v2.5/user/apm/skywalking.md            |   53 +
 .../user/appendix/global-transaction-status.md     |   60 +
 .../version-v2.5/user/appendix/isolation.md        | 1280 +++++++
 .../version-v2.5/user/configuration/apollo.md      |   75 +
 .../version-v2.5/user/configuration/consul.md      |  116 +
 .../version-v2.5/user/configuration/etcd3.md       |   74 +
 .../version-v2.5/user/configuration/index.md       |   17 +
 .../version-v2.5/user/configuration/nacos.md       |  104 +
 .../version-v2.5/user/configuration/zookeeper.md   |    9 +
 .../version-v2.5/user/configurations.md            |  418 +++
 .../version-v2.5/user/configurations090.md         |  188 ++
 .../version-v2.5/user/configurations100.md         |  238 ++
 .../version-v2.5/user/console/introduction.md      |   10 +
 .../version-v2.5/user/console/saga-designer.md     |    8 +
 .../user/console/transaction-control.md            |  207 ++
 .../version-v2.5/user/datasource.md                |   20 +
 .../version-v2.5/user/microservice.md              |  149 +
 .../version-v2.5/user/mode/at.md                   |   43 +
 .../version-v2.5/user/mode/saga.md                 | 1015 ++++++
 .../version-v2.5/user/mode/tcc.md                  |   87 +
 .../version-v2.5/user/mode/xa.md                   |   58 +
 .../version-v2.5/user/ormframework.md              |    8 +
 .../version-v2.5/user/performance.md               |    9 +
 .../version-v2.5/user/quickstart.md                |  243 ++
 .../version-v2.5/user/registry/consul.md           |   97 +
 .../version-v2.5/user/registry/etcd3.md            |   68 +
 .../version-v2.5/user/registry/eureka.md           |   80 +
 .../version-v2.5/user/registry/index.md            |   19 +
 .../version-v2.5/user/registry/nacos.md            |   85 +
 .../version-v2.5/user/registry/namingserver.md     |  158 +
 .../version-v2.5/user/registry/zookeeper.md        |   86 +
 .../version-v2.5/user/sqlreference/dml.md          |   19 +
 .../version-v2.5/user/sqlreference/function.md     |  163 +
 .../user/sqlreference/sql-decoration.md            |   38 +
 .../user/sqlreference/sql-restrictions.md          |   32 +
 .../user/txgroup/transaction-group-and-ha.md       |  141 +
 .../version-v2.5/user/txgroup/transaction-group.md |  173 +
 .../version-v2.5.json                              |   98 +
 .../version-v2.5/dev/domain/overviewDomainModel.md |   61 +
 .../version-v2.5/dev/domain/rm.md                  |    9 +
 .../version-v2.5/dev/domain/tc.md                  |    9 +
 .../version-v2.5/dev/domain/tm.md                  |    9 +
 .../version-v2.5/dev/mode/at-mode.md               |  211 ++
 .../version-v2.5/dev/mode/saga-mode.md             |   68 +
 .../version-v2.5/dev/mode/tcc-mode.md              |   32 +
 .../version-v2.5/dev/mode/xa-mode.md               |  110 +
 .../version-v2.5/dev/seata-mertics.md              |  175 +
 .../committer-guide/label-an-issue-guide_dev.md    |   33 +
 .../committer-guide/new-committer_dev.md           |   73 +
 .../committer-guide/website-guide_dev.md           |   10 +
 .../contributor-activity/top-contributer_dev.md    |   38 +
 .../contributor-guide/new-contributor-guide_dev.md |   42 +
 .../reporting-security-issues_dev.md               |   24 +
 .../contributor-guide/test-coverage-guide_dev.md   |   40 +
 .../version-v2.5/developers/guide_dev.md           |  212 ++
 .../version-v2.5/developers/intro.md               |   47 +
 .../version-v2.5/developers/maturity.md            |   88 +
 .../developers/ppmc-guide/new-ppmc_dev.md          |   24 +
 .../ppmc-guide/nominate-committer_dev.md           |  230 ++
 .../developers/ppmc-guide/nominate-ppmc_dev.md     |  176 +
 .../developers/release-guide/release-guide_dev.md  |  584 ++++
 .../version-v2.5/developers/team/team.md           |   13 +
 .../version-v2.5/ops/config-center.md              |    7 +
 .../version-v2.5/ops/deploy-by-docker-142.md       |  121 +
 .../ops/deploy-by-docker-compose-142.md            |  333 ++
 .../version-v2.5/ops/deploy-by-docker-compose.md   |  495 +++
 .../version-v2.5/ops/deploy-by-docker.md           |  118 +
 .../version-v2.5/ops/deploy-by-helm.md             |   66 +
 .../version-v2.5/ops/deploy-by-kubernetes.md       |  178 +
 .../version-v2.5/ops/deploy-guide-beginner.md      |  251 ++
 .../version-v2.5/ops/deploy-ha.md                  |  193 ++
 .../version-v2.5/ops/deploy-server-raft.md         |   83 +
 .../version-v2.5/ops/deploy-server.md              |   55 +
 .../ops/multi-configuration-isolation.md           |   63 +
 .../version-v2.5/ops/upgrade.md                    |  180 +
 .../version-v2.5/overview/faq.md                   |  737 ++++
 .../version-v2.5/overview/history.md               |   18 +
 .../version-v2.5/overview/terminology.md           |   16 +
 .../version-v2.5/overview/what-is-seata.md         |  269 ++
 .../version-v2.5/release-notes.md                  | 3366 +++++++++++++++++++
 .../version-v2.5/security/secret-key.md            |   27 +
 .../version-v2.5/user/api.md                       |  404 +++
 .../version-v2.5/user/apm/prometheus.md            |   77 +
 .../version-v2.5/user/apm/skywalking.md            |   53 +
 .../user/appendix/global-transaction-status.md     |   60 +
 .../version-v2.5/user/appendix/isolation.md        | 1276 +++++++
 .../version-v2.5/user/configuration/apollo.md      |   76 +
 .../version-v2.5/user/configuration/consul.md      |  122 +
 .../version-v2.5/user/configuration/etcd3.md       |   74 +
 .../version-v2.5/user/configuration/index.md       |   18 +
 .../version-v2.5/user/configuration/nacos.md       |  102 +
 .../version-v2.5/user/configuration/zookeeper.md   |    9 +
 .../version-v2.5/user/configurations.md            |  344 ++
 .../version-v2.5/user/configurations090.md         |  103 +
 .../version-v2.5/user/configurations100.md         |  228 ++
 .../version-v2.5/user/console/introduction.md      |    9 +
 .../version-v2.5/user/console/saga-designer.md     |    8 +
 .../user/console/transaction-control.md            |  207 ++
 .../version-v2.5/user/datasource.md                |   20 +
 .../version-v2.5/user/microservice.md              |  149 +
 .../version-v2.5/user/mode/at.md                   |   50 +
 .../version-v2.5/user/mode/saga.md                 | 1079 ++++++
 .../version-v2.5/user/mode/tcc.md                  |   91 +
 .../version-v2.5/user/mode/xa.md                   |   60 +
 .../version-v2.5/user/ormframework.md              |    9 +
 .../version-v2.5/user/performance.md               |    9 +
 .../version-v2.5/user/quickstart.md                |  242 ++
 .../version-v2.5/user/registry/consul.md           |   98 +
 .../version-v2.5/user/registry/etcd3.md            |   68 +
 .../version-v2.5/user/registry/eureka.md           |   80 +
 .../version-v2.5/user/registry/index.md            |   20 +
 .../version-v2.5/user/registry/nacos.md            |   85 +
 .../version-v2.5/user/registry/namingserver.md     |  156 +
 .../version-v2.5/user/registry/zookeeper.md        |   99 +
 .../version-v2.5/user/spring.md                    |   87 +
 .../version-v2.5/user/sqlreference/dml.md          |   19 +
 .../version-v2.5/user/sqlreference/function.md     |  161 +
 .../user/sqlreference/sql-decoration.md            |   38 +
 .../user/sqlreference/sql-restrictions.md          |   32 +
 .../version-v2.5/user/store/db.md                  |    0
 .../version-v2.5/user/store/file.md                |    0
 .../version-v2.5/user/store/index.md               |    0
 .../version-v2.5/user/store/raft.md                |    0
 .../version-v2.5/user/store/redis.md               |    0
 .../user/txgroup/transaction-group-and-ha.md       |  141 +
 .../version-v2.5/user/txgroup/transaction-group.md |  174 +
 .../version-v2.5/dev/domain/overviewDomainModel.md |    1 +
 versioned_docs/version-v2.5/dev/domain/rm.md       |    1 +
 versioned_docs/version-v2.5/dev/domain/tc.md       |    1 +
 versioned_docs/version-v2.5/dev/domain/tm.md       |    1 +
 versioned_docs/version-v2.5/dev/mode/at-mode.md    |    1 +
 versioned_docs/version-v2.5/dev/mode/saga-mode.md  |    1 +
 versioned_docs/version-v2.5/dev/mode/tcc-mode.md   |    1 +
 versioned_docs/version-v2.5/dev/mode/xa-mode.md    |    1 +
 versioned_docs/version-v2.5/dev/seata-mertics.md   |    1 +
 .../committer-guide/label-an-issue-guide_dev.md    |    1 +
 .../committer-guide/website-guide_dev.md           |    1 +
 .../contributor-activity/top-contributer_dev.md    |    1 +
 .../contributor-guide/new-contributor-guide_dev.md |    1 +
 .../reporting-security-issues_dev.md               |    1 +
 .../contributor-guide/test-coverage-guide_dev.md   |    1 +
 .../version-v2.5/developers/guide_dev.md           |    1 +
 .../developers/ppmc-guide/release-guide_dev.md     |    1 +
 versioned_docs/version-v2.5/ops/config-center.md   |    1 +
 .../version-v2.5/ops/deploy-by-docker-142.md       |    1 +
 .../ops/deploy-by-docker-compose-142.md            |    1 +
 .../version-v2.5/ops/deploy-by-docker-compose.md   |    1 +
 .../version-v2.5/ops/deploy-by-docker.md           |    1 +
 versioned_docs/version-v2.5/ops/deploy-by-helm.md  |    1 +
 .../version-v2.5/ops/deploy-by-kubernetes.md       |    1 +
 .../version-v2.5/ops/deploy-guide-beginner.md      |    1 +
 versioned_docs/version-v2.5/ops/deploy-ha.md       |    1 +
 .../version-v2.5/ops/deploy-server-raft.md         |    1 +
 versioned_docs/version-v2.5/ops/deploy-server.md   |    1 +
 .../ops/multi-configuration-isolation.md           |    1 +
 versioned_docs/version-v2.5/ops/upgrade.md         |    1 +
 versioned_docs/version-v2.5/overview/faq.md        |    1 +
 versioned_docs/version-v2.5/overview/history.md    |    1 +
 .../version-v2.5/overview/terminology.md           |    1 +
 .../version-v2.5/overview/what-is-seata.md         |    1 +
 versioned_docs/version-v2.5/release-notes.md       |    1 +
 versioned_docs/version-v2.5/security/secret-key.md |    1 +
 versioned_docs/version-v2.5/user/api.md            |    1 +
 versioned_docs/version-v2.5/user/apm/prometheus.md |    1 +
 versioned_docs/version-v2.5/user/apm/skywalking.md |    1 +
 .../user/appendix/global-transaction-status.md     |    1 +
 .../version-v2.5/user/appendix/isolation.md        |    1 +
 .../version-v2.5/user/configuration/apollo.md      |    1 +
 .../version-v2.5/user/configuration/consul.md      |    1 +
 .../version-v2.5/user/configuration/etcd3.md       |    1 +
 .../version-v2.5/user/configuration/index.md       |    1 +
 .../version-v2.5/user/configuration/nacos.md       |    1 +
 .../version-v2.5/user/configuration/zookeeper.md   |    1 +
 versioned_docs/version-v2.5/user/configurations.md |    1 +
 .../version-v2.5/user/configurations090.md         |    1 +
 .../version-v2.5/user/configurations100.md         |    1 +
 .../version-v2.5/user/console/introduction.md      |    1 +
 .../version-v2.5/user/console/saga-designer.md     |    1 +
 .../user/console/transaction-control.md            |    1 +
 versioned_docs/version-v2.5/user/datasource.md     |    1 +
 versioned_docs/version-v2.5/user/microservice.md   |    1 +
 versioned_docs/version-v2.5/user/mode/at.md        |    1 +
 versioned_docs/version-v2.5/user/mode/saga.md      |    1 +
 versioned_docs/version-v2.5/user/mode/tcc.md       |    1 +
 versioned_docs/version-v2.5/user/mode/xa.md        |    1 +
 versioned_docs/version-v2.5/user/ormframework.md   |    1 +
 versioned_docs/version-v2.5/user/performance.md    |    1 +
 versioned_docs/version-v2.5/user/quickstart.md     |    1 +
 .../version-v2.5/user/registry/consul.md           |    1 +
 versioned_docs/version-v2.5/user/registry/etcd3.md |    1 +
 .../version-v2.5/user/registry/eureka.md           |    1 +
 versioned_docs/version-v2.5/user/registry/index.md |    1 +
 versioned_docs/version-v2.5/user/registry/nacos.md |    1 +
 .../version-v2.5/user/registry/namingserver.md     |    1 +
 .../version-v2.5/user/registry/zookeeper.md        |    1 +
 versioned_docs/version-v2.5/user/spring.md         |    1 +
 .../version-v2.5/user/sqlreference/dml.md          |    1 +
 .../version-v2.5/user/sqlreference/function.md     |    1 +
 .../user/sqlreference/sql-decoration.md            |    1 +
 .../user/sqlreference/sql-restrictions.md          |    1 +
 .../user/txgroup/transaction-group-and-ha.md       |    1 +
 .../version-v2.5/user/txgroup/transaction-group.md |    1 +
 versioned_sidebars/version-v2.5-sidebars.json      |  212 ++
 versions.json                                      |    1 +
 248 files changed, 30359 insertions(+)

diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5.json b/i18n/en/docusaurus-plugin-content-docs/version-v2.5.json
new file mode 100644
index 00000000000..a6802e1fa7a
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5.json
@@ -0,0 +1,93 @@
+{
+  "version.label": {
+    "message": "v2.5",
+    "description": "The label for version current"
+  },
+  "sidebar.docs.category.Overview": {
+    "message": "Overview",
+    "description": "The label for category Overview in sidebar docs"
+  },
+  "sidebar.docs.category.User Doc": {
+    "message": "User Doc",
+    "description": "The label for category User Doc in sidebar docs"
+  },
+  "sidebar.docs.category.Transactions Grouping": {
+    "message": "Transactions Grouping",
+    "description": "The label for category Transactions Grouping in sidebar docs"
+  },
+  "sidebar.docs.category.Configuration Center": {
+    "message": "Configuration Center",
+    "description": "The label for category Configuration Center in sidebar docs"
+  },
+  "sidebar.docs.category.Registration Authority": {
+    "message": "Registry Center",
+    "description": "The label for category Registration Authority in sidebar docs"
+  },
+  "sidebar.docs.category.Console": {
+    "message": "Console",
+    "description": "The label for category Console in sidebar docs"
+  },"sidebar.docs.category.SQL Reference": {
+    "message": "SQL Reference",
+    "description": "The label for category SQL Reference in sidebar docs"
+  },
+  "sidebar.docs.category.APM": {
+    "message": "APM",
+    "description": "The label for category APM in sidebar docs"
+  },
+  "sidebar.docs.category.Testing Report": {
+    "message": "Testing Report",
+    "description": "The label for category Testing Report in sidebar docs"
+  },
+  "sidebar.docs.category.Appendix": {
+    "message": "Appendix",
+    "description": "The label for category Appendix in sidebar docs"
+  },
+  "sidebar.docs.category.Developer Guide": {
+    "message": "Developer Guide",
+    "description": "The label for category Developer Guide in sidebar docs"
+  },
+  "sidebar.docs.category.Transaction Mode": {
+    "message": "Transaction Mode",
+    "description": "The label for category Transaction Mode in sidebar docs"
+  },
+  "sidebar.docs.category.Domain Model": {
+    "message": "Domain Model",
+    "description": "The label for category Domain Model in sidebar docs"
+  },
+  "sidebar.docs.category.Ops Guide": {
+    "message": "Ops Guide",
+    "description": "The label for category Ops Guide in sidebar docs"
+  },
+  "sidebar.docs.category.Security Guide": {
+    "message": "Security Guide",
+    "description": "The label for category Security Guide in sidebar docs"
+  },
+  "sidebar.docs.category.Deploy": {
+    "message": "Deploy",
+    "description": "The label for category Deploy in sidebar docs"
+  },
+  "sidebar.developers.category.Developers List": {
+    "message": "Developers List",
+    "description": "The label for category Developers List in sidebar developers"
+  },
+  "sidebar.developers.category.Contribute Guide": {
+    "message": "Contribute Guide",
+    "description": "The label for category Contribute Guide in sidebar developers"
+  },
+  "sidebar.developers.category.Committer Guide": {
+    "message": "Committer Guide",
+    "description": "The label for category Committer Guide in sidebar developers"
+  },
+  "sidebar.developers.category.PPMC Guide": {
+    "message": "PPMC Guide",
+    "description": "The label for category PPMC Guide in sidebar developers"
+  },
+  "sidebar.developers.category.Release Guide": {
+    "message": "Release Guide",
+    "description": "The label for category Release Guide in sidebar developers"
+  },
+  "sidebar.release-notes.category.release-notes": {
+    "message": "Release Notes",
+    "description": "The label for category Release Notes in sidebar Release Notes"
+  }
+}
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/overviewDomainModel.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/overviewDomainModel.md
new file mode 100644
index 00000000000..8331f4019ae
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/overviewDomainModel.md
@@ -0,0 +1,59 @@
+---
+title: Overview of Domain Model
+keywords: [Seata, domain model]
+description: Seata domain model.
+---
+
+# Overview of Domain Model
+
+This article introduces the domain model of Seata (Simple Extensible Autonomous Transaction Architecture).
+
+Seata is a distributed transaction product designed to address data consistency issues in a distributed architecture. It uses two-phase commit (2PC) or eventual consistency based on the BASE theory to achieve transaction consistency. For a detailed explanation of the transaction modes, please refer to the Transaction Modes section in the developer's guide. Seata offers advantages such as XA and AT support without business intrusion, TCC decoupled from specific service frameworks, indepen [...]
+
+## Seata Domain Model
+
+![image](/img/doc/TB19qmhOrY1gK0jSZTEXXXDQVXa-1330-924.png)
+
+As shown in the diagram above, the lifecycle of a transaction in Seata mainly consists of three parts: Begin (TM), Registry (RM), and Commit/Rollback (TM & TC).
+
+**Transaction Creation**
+
+Transaction Manager (TM):
+
+This is an entity in Seata used for creating and determining the transaction result. It is typically integrated into the upstream of the business invocation chain.
+
+**Branch Transaction**
+
+Resource Manager (RM):
+
+This is an entity in Seata used for managing resources. In most cases, it is equivalent to a provider in a microservice, managing resources within the service, such as database resources.
+
+**Transaction Determination**
+
+Transaction Coordinator (TC):
+
+This is an entity in Seata used for coordinating transactions in the two-phase commit (2PC) mode (except for SAGA). It can be driven by the transaction manager or self-driven for the two-phase transaction behavior.
+
+- Commit:
+
+  In Seata, when the transaction manager determines to commit, TC initiates the two-phase commit behavior for the transaction. For example, in TCC mode, it's the "confirm" step, in AT mode, it's the "undo log delete," and in XA mode, it's "XA Commit."
+
+- Rollback:
+
+  In Seata, when the transaction manager determines to roll back, TC initiates the two-phase rollback behavior for the transaction. For example, in TCC mode, it's the "cancel" step, in AT mode, it's "undo," and in XA mode, it's "XA Rollback."
+
+- Timeout Rollback:
+
+  In Seata, when the transaction manager specifies a timeout for a created transaction and that timeout is reached without determination, TC will actively perform a timeout rollback for transactions that have exceeded the timeout. The behavior for timeouts is the same as the Rollback behavior described above.
+
+The three scenarios mentioned above are the transaction processing cases involving TC. These three states can expand into more transaction states. [For specific details, you can refer to this link](/docs/user/appendix/global-transaction-status).
+
+**High Availability**
+
+[Transaction Group](/docs/user/txgroup/transaction-group) (tx-service-group):
+
+Seata's logical resource grouping allows applications (clients) to define transaction groups based on their microservices' needs, with each group having a unique name.
+
+[Service Discovery](/docs/user/registry):
+
+Seata supports service discovery for Eureka, Nacos, Consul, Etcd, ZooKeeper, Sofa, Redis, and file-based (using a specific file) configurations.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/rm.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/rm.md
new file mode 100644
index 00000000000..fa6e9f12185
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/rm.md
@@ -0,0 +1,9 @@
+---
+title: Resource Manager(RM)
+keywords: [Seata、Resource Manager、RM]
+description: Seata Resource Manager。
+---
+
+# Resource Manager(RM)
+
+Welcome to claim and supplement this document
\ No newline at end of file
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/tc.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/tc.md
new file mode 100644
index 00000000000..d6017a7128e
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/tc.md
@@ -0,0 +1,9 @@
+---
+title: Transaction Coordinator(TC)
+keywords: [Seata、Transaction Coordinator、TC]
+description: Seata Transaction Coordinator。
+---
+
+# Transaction Coordinator(TC)
+
+Welcome to claim and supplement this document
\ No newline at end of file
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/tm.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/tm.md
new file mode 100644
index 00000000000..9abf0d5f2fb
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/domain/tm.md
@@ -0,0 +1,9 @@
+---
+title: Transaction Manager(TM)
+keywords: [Seata、Transaction Manager、TM]
+description: Seata Transaction Manager。
+---
+
+# Transaction Manager(TM)
+
+Welcome to claim and supplement this document
\ No newline at end of file
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/at-mode.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/at-mode.md
new file mode 100644
index 00000000000..516396989eb
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/at-mode.md
@@ -0,0 +1,213 @@
+---
+title: Seata AT Mode
+keywords: [Seata, AT mode]
+description: Seata AT mode.
+---
+
+#  Seata AT mode
+
+# The basic idea
+
+## Prerequisite
+
+- Relational databases that support local ACID transaction.
+- Java applications that access database via JDBC.
+
+## Overall mechanism
+
+Evolution from the two phases commit protocol:
+
+- Phase 1:commit business data and rollback log in the same local transaction, then release local lock and connection resources.
+- Phase 2:
+  - for commit case, do the work asynchronously and quickly.
+  - for rollback case, do compensation, base on the rollback log created in the phase 1.
+
+# Write isolation
+
+- The **global lock** must be acquired before committing the local transaction of phase 1. 
+- If the **global lock** is not acquired, the local transaction should not be committed.
+- One transaction will try to acquire the **global lock** many times if it fails to, but there is a timeout, if it's timeout, rollback local transaction and release local lock as well. 
+
+For example:
+
+Two transactions tx1 and tx2 are trying to update field m of table a. The original value of m is 1000.
+
+tx1 starts first, begins a local transaction, acquires the local lock, do the update operation: m = 1000 - 100 = 900. tx1 must acquire the **global lock** before committing the local transaction, after that, commit local transaction and release local lock. 
+
+next, tx2 begins local transaction, acquires local lock, do the update operation: m = 900 - 100 = 800. Before tx2 can commit local transaction, it must acquire the **global lock**, but the **global lock** may be hold by tx1, so tx2 will do retry. After tx1 does the global commit and releases the **global lock**, tx2 can acquire the **global lock**, then it can commit local transaction and release local lock.
+
+![Write-Isolation: Commit](/img/seata_at-1.png)
+
+See the figure above, tx1 does the global commit in phase 2 and release the **global lock**, tx2 acquires the **global lock** and commits local transaction.
+
+![Write-Isolation: Rollback](/img/seata_at-2.png)
+
+See the figure above, if tx1 wants to do the global rollback, it must acquire local lock to revert the update operation of phase 1.
+
+However, now the local lock is held by tx2 which hopes to acquire the **global lock**, so tx1 fails to rollback, but it would try it many times until it's timeout for tx2 to acquire the **global lock**, then tx2 rollbacks local transaction and releases local lock, after that, tx1 can acquire the local lock, and do the branch rollback successfully.
+
+Because the **global lock** is held by tx1 during the whole process, there isn't no problem of **dirty write**.
+
+# Read isolation
+
+The isolation level of local database is **read committed** or above, so the default isolation level of the global transaction is **read uncommitted**.
+
+If it needs the isolation level of the global transaction is **read committed**, currently, Fescar implements it via SELECT FOR UPDATE statement.
+
+![Read Isolation: SELECT FOR UPDATE](/img/seata_at-3.png)
+
+The **global lock** is be applied during the execution of SELECT FOR UPDATE statement, if the **global lock** is held by other transactions, the transaction will release local lock retry execute the SELECT FOR UPDATE statement. During the whole process, the query is blocked until the **global lock** is acquired, if the lock is acquired, it means the other global transaction has committed, so the isolation level of global transaction is **read committed**.
+
+For the performance consideration, Fescar only does proxy work for SELECT FOR UPDATE. For the general SELECT statement, do nothing.
+
+# Work process
+
+Take an example to illustrate it.
+
+A business table:`product`
+
+| Field | Type         | Key  |
+| ----- | ------------ | ---- |
+| id    | bigint(20)   | PRI  |
+| name  | varchar(100) |      |
+| since | varchar(100) |      |
+
+The sql of branch transaction in AT mode:
+
+```sql
+update product set name = 'GTS' where name = 'TXC';
+```
+
+## Phase 1
+
+Process:
+
+1. Parse sql:  know the sql type is update operation, table name is product, the where condition is name = 'TXC' and so on.
+2. Query the data before update(Named before image): In order to  locate the data that will be updated, generate a query statement by the where condition above.
+
+```sql
+select id, name, since from product where name = 'TXC';
+```
+
+Got the "before image":
+
+| id   | name | since |
+| ---- | ---- | ----- |
+| 1    | TXC  | 2014  |
+
+3. Execute the update sql: update the record of name equals 'GTS'. 
+4. Query the data after update(Named after image): locate the record by the **primary key** of image data before update.
+
+```sql
+select id, name, since from product where id = 1;
+```
+
+Got the after image:
+
+| id   | name | since |
+| ---- | ---- | ----- |
+| 1    | GTS  | 2014  |
+
+5. Insert a rollback log: build the rollback log with image before and after, as well as SQL statement relelated information, then insert into table `UNDO_LOG` .
+
+```json
+{
+	"branchId": 641789253,
+	"undoItems": [{
+		"afterImage": {
+			"rows": [{
+				"fields": [{
+					"name": "id",
+					"type": 4,
+					"value": 1
+				}, {
+					"name": "name",
+					"type": 12,
+					"value": "GTS"
+				}, {
+					"name": "since",
+					"type": 12,
+					"value": "2014"
+				}]
+			}],
+			"tableName": "product"
+		},
+		"beforeImage": {
+			"rows": [{
+				"fields": [{
+					"name": "id",
+					"type": 4,
+					"value": 1
+				}, {
+					"name": "name",
+					"type": 12,
+					"value": "TXC"
+				}, {
+					"name": "since",
+					"type": 12,
+					"value": "2014"
+				}]
+			}],
+			"tableName": "product"
+		},
+		"sqlType": "UPDATE"
+	}],
+	"xid": "xid:xxx"
+}
+```
+
+6. Before local commit, the transaction submit an application to TC to acquire a **global lock** for the record whose primary key equals 1 in the table product. 
+7. Commit local transaction: commit the update of PRODUCT table and the insert of UNDO_LOG table in the same local transaction.
+8. Report the result of step 7 to TC.
+
+## Phase 2 - Rollback case
+
+1. After receive the rollback request from TC, begin a local transaction, execute operation as following.
+2. Retrieve the UNDO LOG by XID and Branch ID. 
+3. Validate data: Compare the image data after update in UNDO LOG with current data, if there is difference, it means the data has been changed by operation out of current transaction, it should be handled in different policy, we will describe it detailedly in other document.
+4. Generate rollback SQL statement base on before image in UNDO LOG and related information of the business SQL. 
+
+```sql
+update product set name = 'TXC' where id = 1;
+```
+
+5. Commit local transaction, report the result of execution of local transaction(The rollback result of the Branch transaction) to TC.
+
+## Phase 2 - Commit case
+
+1. After receive the commit request from TC, put the request into a work queue, return success to TC immediately. 
+2. During the phase of doing the asynchronous work in the queue, the UNDO LOGs are deleted in batch way.
+
+# Appendix
+
+## Undo log table
+
+UNDO_LOG Table:there is a little bit difference on the data type for different databases.
+
+For MySQL example:
+
+| Field         | Type          |
+| ------------- | ------------- |
+| branch_id     | bigint     PK |
+| xid           | varchar(100)  |
+| rollback_info | longblob      |
+| log_status    | tinyint       |
+| log_created   | datetime      |
+| log_modified  | datetime      |
+| ext           | varchar(100)  |
+
+```sql
+CREATE TABLE `undo_log` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'increment id',
+  `branch_id` bigint(20) NOT NULL COMMENT 'branch transaction id',
+  `xid` varchar(100) NOT NULL COMMENT 'global transaction id',
+  `context` varchar(128) NOT NULL COMMENT 'undo_log context,such as serialization',
+  `rollback_info` longblob NOT NULL COMMENT 'rollback info',
+  `log_status` int(11) NOT NULL COMMENT '0:normal status,1:defense status',
+  `log_created` datetime NOT NULL COMMENT 'create datetime',
+  `log_modified` datetime NOT NULL COMMENT 'modify datetime',
+  `ext` varchar(100) DEFAULT NULL COMMENT 'reserved field',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='AT transaction mode undo table';
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/saga-mode.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/saga-mode.md
new file mode 100644
index 00000000000..591ff305e9d
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/saga-mode.md
@@ -0,0 +1,54 @@
+---
+title: Seata Saga Mode
+keywords: [Seata, Saga mode]
+description: The Saga model is a long transaction solution provided by SEATA. In the Saga model, each participant in the business process submits a local transaction. When a participant fails, the previous successful participant is compensated. One stage is positive serving and The two-stage compensation services are implemented by business development.
+---
+
+# SEATA Saga Mode
+## Overview
+
+The Saga model is a long transaction solution provided by SEATA. In the Saga model, each participant in the business process submits a local transaction. When a participant fails, the previous successful participant is compensated. One stage is positive serving and The two-stage compensation services are implemented by business development.
+
+![Saga mode diagram](/img/doc/TB1Y2kuw7T2gK0jSZFkXXcIQFXa-445-444.png)
+
+Theoretical basis: Hector & Kenneth Post a comment Sagas (1987)
+
+## Saga's implementation:
+### Saga implementation based on state machine engine:
+
+Currently, the Saga mode provided by SEATA is implemented based on the state machine engine. The mechanism is:
+   1. Define the process of service invocation through state diagram and generate json state language definition file
+   2. A node in the state diagram can call a service, and the node can configure its compensation node
+   3. The state diagram json is driven by the state machine engine. When an exception occurs, the state engine reversely executes the compensation node corresponding to the successful node and rolls back the transaction
+   > Note: Whether to compensate when an exception occurs can also be determined by the user
+   4. Support the realization of service orchestration requirements, support single selection, concurrency, sub-process, parameter conversion, parameter mapping, service execution status judgment, exception capture and other functions
+
+Example state diagram:
+
+![Example state diagram](/img/saga/demo_statelang.png?raw=true)
+
+## Design
+### State Machine Engine Principle:
+
+![State Machine Engine Principle](/img/saga/saga_engine_mechanism.png?raw=true)
+
+* The state diagram in the figure is to execute stateA, then stateB, and then stateC
+* The execution of "state" is based on the event-driven model. After the execution of stateA, routing messages will be generated and put into EventQueue. The event consumer will fetch messages from EventQueue and execute stateB.
+* When the entire state machine is started, it will call Seata Server to start distributed transactions, and generate xid, and then record "state machine instance" startup events to the local database
+* When the execution reaches a "state", it will call Seata Server to register branch transactions and produce branchId, and then record the "state instance" to start executing events to the local database
+* When a "status" execution is completed, the "status instance" execution end event is recorded to the local database, and then the Seata Server is called to report the status of the branch transaction
+* When the execution of the entire state machine is completed, the "state machine instance" execution completion event is recorded to the local database, and then Seata Server is called to submit or roll back the distributed transaction
+
+### State Machine Engine Design:
+
+![State Machine Engine Design](/img/saga/saga_engine.png?raw=true)
+
+The design of the state machine engine is mainly divided into three layers. The upper layer depends on the lower layer. From bottom to top:
+* Eventing layer:
+    * Implement event-driven architecture, which can push events and consume events by the consumer. This layer does not care what the event is and what the consumer performs.
+* ProcessController layer:
+    * Because the upper-level Eventing drives the execution of an "empty" process engine, the behavior and routing of "state" are not implemented.
+> Based on the above two layers, in theory, you can customize and extend any "process" engine
+* StateMachineEngine layer:
+    * Implement the behavior and routing logic of each state of the state machine engine
+    * Provide API, state machine language warehouse
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/tcc-mode.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/tcc-mode.md
new file mode 100644
index 00000000000..4ffdc05a569
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/tcc-mode.md
@@ -0,0 +1,30 @@
+---
+title: Seata TCC Mode
+keywords: [Seata, TCC Mode]
+description: Seata TCC mode.
+---
+
+# Seata TCC Mode
+
+Review the description in the overview: A distributed global transaction, the whole is a **two-phase commit** model. The global transaction is composed of several branch transactions. The branch transaction must meet the requirements of the **two-phase commit** model, that is, each branch transaction must have its own:
+
+- One-stage prepare behavior
+- Two-phase commit or rollback behavior
+
+![Overview of a global transaction](/img/seata_tcc-1.png)
+
+According to the two-phase behavior mode, we divide branch transactions into **Automatic (Branch) Transaction Mode** and **TCC (Branch) Transaction Mode**.
+
+The AT mode is based on a **relational database** that **supports local ACID transactions**:
+
+- One-stage prepare behavior: In local transactions, business data updates and corresponding rollback log records are submitted together.
+- Two-phase commit behavior: Immediately completed successfully, **automatically** asynchronously clean up the rollback log.
+- Two-phase rollback behavior: Through the rollback log, **automatically** generates compensation operations to complete data rollback.
+
+Correspondingly, the TCC mode does not rely on transaction support of the underlying data resources:
+
+- One-stage prepare behavior: Call the **custom** prepare logic.
+- Two-phase commit behavior: Call **custom** commit logic.
+- Two-phase rollback behavior: Call the **custom** rollback logic.
+
+The so-called TCC mode refers to the support of putting **customized's** branch transactions into the management of global transactions.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/xa-mode.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/xa-mode.md
new file mode 100644
index 00000000000..8b77813672d
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/mode/xa-mode.md
@@ -0,0 +1,107 @@
+---
+title: Seata XA Mode
+keywords: [Seata]
+description: Seata XA Mode
+---
+
+# Seata XA Mode
+
+## Prerequisites
+
+- Databases that support XA transaction.
+- Java applications that access database via JDBC.
+
+## Overall Mechanism
+
+In the distributed transaction framework defined by Seata, XA mode is a transaction mode that manages branch transactions using the XA protocol mechanism, leveraging transaction resources such as databases and message services with XA protocol support.
+
+<img src="/img/doc/TB1hSpccIVl614jSZKPXXaGjpXa-1330-924.png" style={{ zoom:'50%' }} />
+
+- Execution Phase:
+
+  - Rollbackable: Business SQL operations are placed in XA branches, and the XA protocol support ensures *rollbackability*.
+  - Persistent: After XA branches are completed, XA prepare is executed, and again, XA protocol support ensures *persistence* (i.e., no unexpected situations will prevent rollback).
+
+- Completion Phase:
+
+  - Branch Commit: Execute XA branch commit.
+  - Branch Rollback: Execute XA branch rollback.
+
+# Working Mechanism
+
+#### 1. Overall Operation Mechanism
+
+XA mode runs within the transaction framework defined by Seata:
+
+<img src="/img/doc/TB1uM2OaSslXu8jSZFuXXXg7FXa-1330-958.png" alt="xa-fw" style={{ zoom:'50%' }} />
+
+- Execution Phase (E xecute):
+
+  - XA start/XA end/XA prepare + SQL + Register Branch
+
+- Completion Phase (F inish):
+
+  - XA commit/XA rollback
+
+#### 2. Data Source Proxy
+
+XA mode requires XAConnection.
+
+There are two ways to obtain XAConnection:
+
+- Option 1: Developers are required to configure XADataSource.
+- Option 2: Create it based on the developer's regular DataSource.
+
+The first method adds cognitive burden to developers, as they need to learn and use XADataSource specifically for XA mode, which contradicts the design goal of transparent XA programming.
+
+The second method is more developer-friendly. Like the AT mode, developers do not need to worry about any XA-related issues. They can maintain the local programming model.
+
+We prioritize designing and implementing the second method: DataSource proxy creates the corresponding XAConnection based on the regular JDBC connection obtained from the regular data source.
+
+Compared to the data source proxy mechanism in the AT mode, it looks like this:
+
+<img src="/img/doc/TB11_LJcggP7K4jSZFqXXamhVXa-1564-894.png" alt="ds1" style={{ zoom:'50%' }} />
+
+However, the second method also has its limitations: it cannot guarantee compatibility correctness.
+
+In fact, this method is what database drivers should do. The implementation mechanisms of database drivers from different vendors and versions are vendor-specific. We can only ensure correctness on well-tested driver programs. Differences in the versions of driver programs used by developers may lead to the failure of the mechanism.
+
+This is particularly evident with Oracle. See the Druid issue: https://github.com/alibaba/druid/issues/3707
+
+Taking all factors into consideration, the data source proxy design for XA mode needs to support the first method: proxy based on XADataSource.
+
+Compared to the data source proxy mechanism in the AT mode, it looks like this:
+
+<img src="/img/doc/TB1qJ57XZieb18jSZFvXXaI3FXa-1564-894.png" alt="ds2" style={{ zoom:'50%' }} />
+
+#### 3. Branch Registration
+
+XA start requires an Xid parameter.
+
+This parameter needs to be associated with the Seata global transaction's XID and BranchId so that the TC can drive the XA branch's commit or rollback.
+
+Currently, Seata's BranchId is generated uniformly during branch registration. Therefore, the timing of XA mode branch registration needs to be before XA start.
+
+A possible optimization in the future is:
+
+Delay branch registration as much as possible. Similar to the AT mode, we register the branch just before local transaction submission to avoid registering meaningless branches in case of branch execution failure.
+
+This optimization direction requires changes to the BranchId generation mechanism. BranchId should not be generated through branch registration but should be generated separately and then used to register the branch.
+
+## How to use XA Mode
+
+From a programming model perspective, XA mode is identical to AT mode.
+
+You can refer to Seata's official sample: [seata-xa](https://github.com/apache/incubator-seata-samples/tree/master/seata-xa)
+
+In the sample, the upper-level programming model is the same as the AT mode. You only need to modify the data source proxy to switch between XA mode and AT mode:
+
+```java
+@Bean("dataSource")
+public DataSource dataSource(DruidDataSource druidDataSource) {
+    // DataSourceProxy for AT mode
+    // return new DataSourceProxy(druidDataSource);
+
+    // DataSourceProxyXA for XA mode
+    return new DataSourceProxyXA(druidDataSource);
+}
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/seata-mertics.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/seata-mertics.md
new file mode 100644
index 00000000000..b326f76800a
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/dev/seata-mertics.md
@@ -0,0 +1,174 @@
+---
+title: Metrics Design
+keywords: [Seata, Metrics]
+description: Seata Metrics
+---
+
+### Metrics
+
+#### Design Philosophy
+
+1. Seata, as an integrated data consistency framework, will minimize the use of third-party dependencies to reduce the risk of conflicts in the Metrics module.
+2. The Metrics module will strive for higher measurement performance and lower resource overhead, minimizing side effects when enabled.
+3. When configuring, whether Metrics is activated and how data are published depend on the corresponding configuration; enabling configuration will automatically activate Metrics and publish measurement data to [Prometheus](https://github.com/prometheus).
+4. Using Service Provider Interface (SPI) for loading extensions instead of Spring.
+5. Initially, only core Transaction-related metrics will be published, and all other operational metrics will be gradually improved based on community needs.
+
+#### Module Description
+
+It consists of two core API modules, `seata-metrics-api` and `seata-metrics-core`, as well as N implementation modules such as `seata-metrics-registry-compact` and `seata-metrics-exporter-prometheus`:
+
+- seata-metrics-api Module
+
+This module is the core of Metrics and is part of the Seata infrastructure, referenced by TC, TM, and RM. It **does not contain any specific implementation code**, but it only includes interface definitions, including:
+
+1. Meter class interfaces: `Gauge`, `Counter`, `Timer`, etc.
+2. Registry container interface `Registry`
+3. Measurement publishing interface `Publisher`
+
+> Note: There are many existing implementations of Metrics in the open-source community, such as
+>
+> 1. [Netflix-Spectator](https://github.com/Netflix/spectator)
+> 2. [Dropwizard-Metrics](https://github.com/dropwizard/metrics)
+> 3. [Dubbo-Metrics](https://github.com/dubbo/dubbo-metrics)
+>    Some of them are lightweight and agile, while others are heavy and powerful. Since they are also "implementations", they will not be included in `seata-metrics-api` to avoid implementation binding.
+
+- seata-metrics-core Module
+
+This core module of Metrics organizes (loads) one Registry and N Exporters based on configuration.
+
+- seata-metrics-registry-compact Module
+
+This is the default (built-in) Registry implementation we provide.Instead of using other open-source Metrics libraries, it provides lightweight implementations of four types of Meters:
+
+- seata-metrics-exporter-prometheus Module
+
+This is the default Metrics implementation we provide. Without using other open-source Metrics implementations, it provides lightweight implementations of three types of Meters:
+
+| Meter Type | Description                                                                                                           |
+| ---------- | --------------------------------------------------------------------------------------------------------------------- |
+| Gauge      | Single latest value meter                                                                                             |
+| Counter    | Single accumulating meter, can increase or decrease                                                                   |
+| Summary    | Multi-measurement output counter, outputs `total`, `count`, and `tps` (total per second) with no units                |
+| Timer      | Multi-measurement output timer, outputs `total`, `count`, `max`, and `average`, supports accumulation in microseconds |
+
+> Note:
+>
+> 1. More complex meters such as Histogram may be added in the future. Histogram is a type of meter that locally aggregates 75th, 90th, 95th, 98th, 99th, 99.9th, etc., and is suitable for certain scenarios but requires more memory.
+> 2. All meters inherit from Meter, and after executing the measure() method, all meters will generate 1 or N normalized Measurement results.
+
+It also implements an in-memory Registry and Prometheus Exporter to synchronize measurement data with Prometheus.
+
+> Note: Different monitoring systems have different ways of collecting measurement data. For example, Zabbix supports pushing with zabbix-agent, while Prometheus recommends using prometheus-server [pulling](https://prometheus.io/docs/practices/pushing/). Similarly, data exchange protocols are also different, so adaptation is often needed one by one.
+
+#### How to Use
+
+##### Add Configuration
+
+If you need to enable TC Metrics, you need to add configuration items in its configuration file:
+
+Take file.conf for example
+
+```text
+## metrics settings
+metrics {
+  enabled = true
+  registryType = "compact"
+  # multi exporters use comma divided
+  exporterList = "prometheus"
+  exporterPrometheusPort = 9898
+}
+```
+
+Or You can use application.yaml for versions above 1.5.0
+
+```yaml
+seata:
+  metrics:
+    enabled: true
+    registryType: compact
+    exporterList: prometheus
+    exporterPrometheusPort: 9898
+```
+
+Or You can also use a third-party configuration center such as nacos, apollo, etc.
+
+[Please refer to here](https://github.com/apache/incubator-seata/tree/develop/script/config-center) to upload the seata metrics configuration items to the corresponding configuration center, or open the corresponding configuration center console for manually adding.
+
+```properties
+metrics.enabled=true
+metrics.registryType=compact
+metrics.exporterList=prometheus
+metrics.exporterPrometheusPort=9898
+```
+
+After starting TC, you can get the text format data of Metrics on `http://tc-server-ip:9898/metrics`.
+
+> Tips: Port `9898` is used by default, and the list of ports registered by Prometheus [can be visited here](https://github.com/prometheus/prometheus/wiki/Default-port-allocations). If you want to change this port, you can use `metrics.exporter.prometheus.port` to modify the configuration.
+
+##### Download and start Prometheus
+
+After the download is complete, modify the Prometheus configuration file `prometheus.yml`, and add an item to grab Seata's measurement data in `scrape_configs`:
+
+```yaml
+scrape_configs:
+  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
+  - job_name: 'prometheus'
+
+    # metrics_path defaults to '/metrics'
+    # scheme defaults to 'http'.
+
+    static_configs:
+      - targets: ['localhost:9090']
+
+  - job_name: 'seata'
+
+    # metrics_path defaults to '/metrics'
+    # scheme defaults to 'http'.
+
+    static_configs:
+      - targets: ['tc-server-ip:9898']
+```
+
+##### View data output
+
+It is recommended to combine the configuration [Grafana] (https://prometheus.io/docs/visualization/grafana/) to obtain better query results. The initial Metrics exported by Seata include:
+
+- TC :
+
+| Metrics                                                                               | Description                                                                        |
+| ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| seata.transaction(role=tc,meter=counter,status=active/committed/rollback)             | Total number of currently active/committed/rollback transactions                   |
+| seata.transaction(role=tc, meter=summary, statistic=count, status=committed/rollback) | The number of transactions committed/rolled back in the current cycle              |
+| seata.transaction(role=tc,meter=summary,statistic=tps,status=committed/rollback)      | Transaction TPS(transaction per second) committed/rolled back in the current cycle |
+| seata.transaction(role=tc, meter=timer, statistic=total, status=committed/rollback)   | The sum of time-consuming transactions committed/rolled back in the current cycle  |
+| seata.transaction(role=tc, meter=timer, statistic=count, status=committed/rollback)   | The number of transactions committed/rolled back in the current cycle              |
+| seata.transaction(role=tc, meter=timer, statistic=average, status=committed/rollback) | The average transaction time spent on committing/rolling back in the current cycle |
+| seata.transaction(role=tc, meter=timer, statistic=max, status=committed/rollback)     | The maximum time-consuming transaction committed/rolled back in the current cycle  |
+
+Hint: the values of seata.transaction(role=tc, meter=summary, statistic=count, status=committed/rollback) and seata.transaction(role=tc, meter=timer, statistic=count, status=committed/rollback) may be the same, but they are derived from two different metrics.
+
+-TM:
+
+TM will be implemented later, including:
+seata.transaction(role=tm,name=\{GlobalTransactionalName},meter=counter,status=active/committed/rollback) : Use GlobalTransactionalName as the dimension to distinguish the status of different Transactional.
+
+-RM:
+
+RM will be implemented later, including:
+seata.transaction(role=rm, name=\{BranchTransactionalName}, mode=at/mt, meter=counter, status=active/committed/rollback): Use BranchTransactionalName as the dimension and AT/MT dimension to distinguish the transactional status of different branches.
+
+#### How to extend
+
+If there are any of the following situations:
+
+1. You do not use Prometheus as the operation and maintenance monitoring system, but you want to integrate Seata's Metrics data into Dashboard;
+2. You need more complex and powerful metric types, which already exist in other Metrics implementation libraries, and hope to integrate these third-party dependencies for direct use;
+3. You need to change the Measurement output of the default Metric, such as adding a `min` or `sd` (variance) to the Timer;
+4. ...
+
+Then you need to extend the implementation of Metrics by yourself, please create a new module project such as `seata-metrics-xxxx`, after that:
+
+- For 1: you need to implement a new Exporter;
+- For 2: You can change the default Registry implementation and return the third-party Meter implementation;
+- For 3: You can modify the implementation of the corresponding Meter, including the Measurement list returned by the `measure()` method.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/label-an-issue-guide_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/label-an-issue-guide_dev.md
new file mode 100644
index 00000000000..ef966e55aae
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/label-an-issue-guide_dev.md
@@ -0,0 +1,35 @@
+---
+title: Label an Issue
+keywords: [Seata]
+description: Label an Issue.
+---
+
+# Label an Issue
+
+If you are handling an issue, remember to **mark the issue cearly with one or more labels** whenever you think it's meaningful. With labels on, other developers can easily recognize problems, classify them or track progress. 
+
+For issues or pull requests that need coding and further version release to fix, you should always **mark it with a [milestone](https://github.com/apache/incubator-seata/milestones)**. 
+
+Some frequently used labels:
+* Help Wanted
+  * help wanted
+  * good first issue
+
+* Prority
+  * priority/blocker
+  * priority/high
+  * priority/low
+  * priority/normal
+
+* Status
+  * status/need-triage
+  * status/DO-NOT-MERGE
+  * status/READY-TO-MERGE
+  * status/invalid 
+  * status/wontfix
+
+* Type
+  * type/bug
+  * type/documentation
+  * type/enhancement
+  * type/feature
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/new-committer_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/new-committer_dev.md
new file mode 100644
index 00000000000..9d41fcd8a46
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/new-committer_dev.md
@@ -0,0 +1,72 @@
+# New Committer Guide
+
+This document primarily serves as a guide for new committers to Apache Seata™ (incubating).
+
+Upon receiving an invitation email from Seata PMC, a new committer should consider whether accepting.
+If they decide in favor, they should select "Reply All" and express their decision.
+
+## Submit CLA
+
+1. Download the ICLA from https://www.apache.org/licenses/contributor-agreements.html#clas. If a corporation assigns employees to work on an Apache project, please download the CCLA.
+2. Complete the ICLA based on your particulars. Please note:
+  - The address field should be filled out accurately and in detail.
+  - You need to choose a unique ApacheID that hasn't been taken. Check https://people.apache.org/committer-index.html to see which IDs are still available.
+3. Sign the document by hand or by electronic signature
+  - Manually sign a printed copy, then scan it to produce a pdf.
+  - Digitally draw a signature on the document: [Detail Instruction](https://www.apache.org/licenses/cla-faq.html#printer).
+  - Sign the document using PGP: [Detail Instruction](https://www.apache.org/licenses/contributor-agreements.html#submitting).
+4. Send your icla.pdf (and icla.pdf.asc if PGP-signed) to [secretary@apache.org](mailto:secretary@apache.org).
+
+After waiting for some time, you will receive an email notifying you that your CLA has been successfully recorded.
+
+## Setup ASF Account
+
+When receiving an email with the subject "Welcome to the Apache Software Foundation" from root@apache.org, we can begin setting up an ASF account.
+
+### Setup LDAP Password
+
+1. Go to https://id.apache.org/reset/enter and enter your ApacheID.
+2. Check your email and click the provided link to reset your password.
+
+### Link ASF Account to GitHub
+
+1. Navigate to https://gitbox.apache.org/boxer/ and enter your ApacheID and password.
+2. Click "Authenticate with GitHub" and follow the given instructions to link your ASF account to GitHub.
+3. Check your email titled "[GitHub] @asfgit has invited you to join the @apache organization" and accept the invitation.
+4. Wait momentarily, and the website will refresh on its own.
+5. (If you do not enable 2FA on GitHub) Please follow the [instruction](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication).
+
+Your ApacheID and GitHub ID will now both appear on https://gitbox.apache.org/boxer/. Congrats on successfully linking your ASF account to GitHub!
+
+## Email Settings
+
+Note: Apache does not provide a mailbox directly.
+
+### Receive Email
+
+You can change your forwarding email address at [Apache Account Utility Platform](https://id.apache.org/)
+
+### Send Email
+
+To send emails using your apache.org address, configure your email client to leverage the `mail-relay` service. For specifics, refer to [this guide](https://infra.apache.org/committer-email.html).
+
+Here's an illustration for Gmail users:
+
+1. Open Gmail settings and select "See all settings".
+2. Navigate to "Accounts and Import", then locate "Send mail as".
+3. Click "Add another email address" and enter your name and apache.org email address.
+4. Input the SMTP server information:
+  - SMTP Server: mail-relay.apache.org
+  - Port: 587
+  - Username: your apacheID
+  - Password: your apacheID password
+  - Secured connection using TLS
+5. Click "Add account" and you will receive an email from Gmail that need to confirm.
+
+### Subscribe to Mailing List
+
+1. Send email to [dev-subscribe@seata.apache.org](mailto:dev-subscribe@seata.apache.org)
+2. You will receive an email with the subject "confirm subscribe to dev@seata.apache.org"
+3. Reply to the email with "Confirm" in the body
+
+If you receive an email with the subject "WELCOME to dev@seata.apache.org", you have successfully subscribed to the mailing list.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/website-guide_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/website-guide_dev.md
new file mode 100644
index 00000000000..659e017088c
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/committer-guide/website-guide_dev.md
@@ -0,0 +1,10 @@
+---
+title: Website Guide
+keywords: [Seata]
+description: Website Guide.
+---
+
+# Website Guide
+
+1. The website repository of Seata is https://github.com/apache/incubator-seata-website.
+2. After building the website, it'll be published to seata.apache.org automatically.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/new-contributor-guide_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/new-contributor-guide_dev.md
new file mode 100644
index 00000000000..4ef33656334
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/new-contributor-guide_dev.md
@@ -0,0 +1,42 @@
+---
+title: New contributor guide
+keywords: [Seata, contributor]
+description: This is a guide for new comers who wants to contribute to Seata.
+---
+
+# New contributor guide
+
+This is a guide for new comers who wants to contribute to Apache Seata™ (incubating).
+
+### Subscribe to the mailing list
+
+- subscribe: dev-subscribe@seata.apache.org
+- unsubscribe: dev-unsubscribe@seata.apache.org
+
+### Reporting issue
+
+You can always reporting an issue to Seata via Github [Issues](https://github.com/apache/incubator-seata/issues).
+
+If you are reporting bugs, please refer to the issue report [template](https://github.com/apache/incubator-seata/issues/new?template=BUG_REPORT.md).
+
+If you are reporting feature, please refer to the issue report [template](https://github.com/apache/incubator-seata/issues/new?template=FEATURE_REQUEST.md).
+
+If you are reporting regular issues, like raise an question, you can open an [regular issue](https://github.com/apache/incubator-seata/issues/new).
+
+### Sending pull request
+
+* Follow the checklist in the [pull request template](https://github.com/apache/incubator-seata/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)
+* Before you sending out the pull request, please sync your forked repository with remote repository, this will make your pull request simple and clear. See guide below:
+
+```sh
+git remote add upstream git@github.com:apache/incubator-seata.git
+git fetch upstream
+git rebase upstream/master
+git checkout -b your_awesome_patch
+... add some work
+git push origin your_awesome_patch
+```
+
+### Code convention
+
+Please check the [CONTRIBUTING.md](https://github.com/apache/incubator-seata/blob/develop/CONTRIBUTING.md) for code convention.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/reporting-security-issues_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/reporting-security-issues_dev.md
new file mode 100644
index 00000000000..1a3aa40cd8c
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/reporting-security-issues_dev.md
@@ -0,0 +1,25 @@
+---
+title: Reporting Security Issues
+keywords: [Seata, contributor]
+description: This is a guide for new contributors who wants to report security issues.
+---
+
+# Reporting Security Issues
+
+Apache Seata™ (incubating) takes a rigorous standpoint in annihilating the security issues in its software projects. Seata is highly sensitive and forthcoming to issues pertaining to its features and functionality.
+
+## REPORTING VULNERABILITY
+
+If you have apprehensions regarding Seata's security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the Seata Security Team by reporting it to [private@seata.apache.org](mailto:private@seata.apache.org). In the report, specify the description of the issue or potential threat. You are also urged to recommend the way to reproduce and replicate the issue. The Seata community will get back to you after assessing and analysing the findings.
+
+PLEASE PAY ATTENTION to report the security issue on [private@seata.apache.org](mailto:private@seata.apache.org) before disclosing it on public domain.
+
+
+## VULNERABILITY HANDLING
+
+An overview of the vulnerability handling process is:
+
+* The reporter reports the vulnerability privately to Apache.
+* The appropriate project's security team works privately with the reporter to resolve the vulnerability.
+* A new release of the Apache product concerned is made that includes the fix.
+* The vulnerability is publically announced.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/test-coverage-guide_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/test-coverage-guide_dev.md
new file mode 100644
index 00000000000..c46945179a1
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/contributor-guide/test-coverage-guide_dev.md
@@ -0,0 +1,40 @@
+---
+title: Test coverage guide
+keywords: [Seata, coverage]
+description: Test coverage guide.
+---
+
+# Test coverage guide
+
+## How to divide test granularity
+  <img src="https://microservices.io/i/test-pyramid.jpeg" />
+        How to divide test granularity is a big problem. Chris Richardson has divided unit test, integration test, component test and end-to-end test for services test in "[Descending the Testing Pyramid: Effective Testing Strategies for Microservices](https://microservices.io/microservices/testing/2019/09/20/oracle-code-one-testing.html)". We can use it for reference in the process of designing test cases.
+
+## Unit Test
+
+### 1.The benefits of unit testing 
+  * Unit test code can help everyone to go into details and understand the function of the code.
+  * We can find bugs by test case, and then enhance the robustness of the code.
+  * Test case code is also the demo usage of the core code.
+### 2.Some design principle of unit test case 
+  * Steps, fine-grained and combination conditions should be well designed.
+  * Attention to boundary condition test
+  * Test code should also be designed without writing useless code.
+  * When you find a `method` that is hard to write unit test, if you can be sure the `method` is "smelly code", then  refactor it with the committer.
+  * The mock framework in seata is: [mockito](http://site.mockito.org/). Some tutorials:[mockito tutorial](http://www.baeldung.com/bdd-mockito),[mockito refcard](https://dzone.com/refcardz/mockito)
+  * TDD(optional):When you start a new issue, you can try to write test case at first 
+### 3.The specified value of the test coverage
+  * In the stage, the test coverage specified value of delta changed codes is :>=80%. The higher, the better.
+  * We can see the coverage report in this page: https://codecov.io/gh/apache/incubator-seata
+### 4.Project agreement
+  * The unit test cases of the Seata project are distributed in each sub module of the project, and the test assertion class ends with Test.
+
+## Integration test
+
+### Project agreement  
+  * Integration test in this project generally refers to the test above unit test level.
+  * This project use [github actions](https://help.github.com/en/actions/automating-your-workflow-with-github-actions)、[jiblib maven plugin](https://github.com/GoogleContainerTools/jib)、[fabric maven plugin](https://github.com/fabric8io/fabric8-maven-plugin)、[testContainers](https://github.com/testcontainers/testcontainers-java) to build [Docker](https://www.docker.com/) images,and build integration test environment 
+  * Different from unit test, if a test case needs to rely on the third-party middleware, you can use the above tools to build the docker environment and test without mock. But also pay attention to the granularity of building components. For an overly complex environment, you can: the middleware on which the core test depends can be built by docker, and the middleware on which the core test depends can be mocked
+  * The integration test cases of the Seata project are uniformly placed in the integration-test sub module, and the test assertion class ends with IT.
+  * [Junit5](https://junit.org/junit5/) is used here
+  * In the process of parallel running of test cases, pay attention to the isolation state of common middleware, plan the test data and prevent conflicts.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/guide_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/guide_dev.md
new file mode 100644
index 00000000000..fe02e53fa42
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/guide_dev.md
@@ -0,0 +1,215 @@
+---
+title: Contributing to Seata
+keywords: [Seata]
+description: It is warmly welcomed if you have interest to hack on Seata. First, we encourage this kind of willing very much. And here is a list of contributing guide for you.
+---
+
+# Contributing to Seata
+
+It is warmly welcomed if you have interest to hack on Seata. First, we encourage this kind of willing very much. And here is a list of contributing guide for you.
+
+## Topics
+
+* [Reporting security issues](#reporting-security-issues)
+* [Reporting general issues](#reporting-general-issues)
+* [Code and doc contribution](#code-and-doc-contribution)
+* [Test case contribution](#test-case-contribution)
+* [Engage to help anything](#engage-to-help-anything)
+* [Code Style](#code-style)
+
+## Reporting security issues
+
+Security issues are always treated seriously. As our usual principle, we discourage anyone to spread security issues. If you find a security issue of Seata, please do not discuss it in public and even do not open a public issue. Instead we encourage you to send us a private email to  [private@seata.apache.org](mailto:private@seata.apache.org) to report this.
+
+## Reporting general issues
+
+To be honest, we regard every user of Seata as a very kind contributor. After experiencing Seata, you may have some feedback for the project. Then feel free to open an issue via [NEW ISSUE](https://github.com/apache/incubator-seata/issues/new/choose).
+
+Since we collaborate project Seata in a distributed way, we appreciate **WELL-WRITTEN**, **DETAILED**, **EXPLICIT** issue reports. To make the communication more efficient, we wish everyone could search if your issue is an existing one in the searching list. If you find it existing, please add your details in comments under the existing issue instead of opening a brand new one.
+
+To make the issue details as standard as possible, we setup an [ISSUE TEMPLATE](https://github.com/apache/incubator-seata/blob/develop/.github/ISSUE_TEMPLATE) for issue reporters. Please **BE SURE** to follow the instructions to fill fields in template.
+
+There are a lot of cases when you could open an issue:
+
+* bug report
+* feature request
+* performance issues
+* feature proposal
+* feature design
+* help wanted
+* doc incomplete
+* test improvement
+* any questions on project
+* and so on
+
+Also we must remind that when filling a new issue, please remember to remove the sensitive data from your post. Sensitive data could be password, secret key, network locations, private business data and so on.
+
+## Code and doc contribution
+
+Every action to make project Seata better is encouraged. On GitHub, every improvement for Seata could be via a PR (short for pull request).
+
+* If you find a typo, try to fix it!
+* If you find a bug, try to fix it!
+* If you find some redundant codes, try to remove them!
+* If you find some test cases missing, try to add them!
+* If you could enhance a feature, please **DO NOT** hesitate!
+* If you find code implicit, try to add comments to make it clear!
+* If you find code ugly, try to refactor that!
+* If you can help to improve documents, it could not be better!
+* If you find document incorrect, just do it and fix that!
+* ...
+
+How to compile code?
+
+```text
+./mvnw clean package -DskipTests=true
+```
+
+Whether to ignore unit tests can be determined based on the scenario requirements, but all unit tests must be passed before submitting the PR.
+
+How to package seata-server as a binary package?
+
+```text
+./mvnw clean install -Prelease-seata -DskipTests=true
+```
+
+Actually it is impossible to list them completely. Just remember one principle:
+
+> WE ARE LOOKING FORWARD TO ANY PR FROM YOU.
+
+Since you are ready to improve Seata with a PR, we suggest you could take a look at the PR rules here.
+
+* [Workspace Preparation](#workspace-preparation)
+* [Branch Definition](#branch-definition)
+* [Commit Rules](#commit-rules)
+* [PR Description](#pr-description)
+
+### Workspace Preparation
+
+To put forward a PR, we assume you have registered a GitHub ID. Then you could finish the preparation in the following steps:
+
+1. **FORK** Seata to your repository. To make this work, you just need to click the button Fork in right-left of [apache/incubator-seata](https://github.com/apache/incubator-seata) main page. Then you will end up with your repository in `https://github.com/<your-username>/incubator-seata`, in which `your-username` is your GitHub username.
+
+1. **CLONE** your own repository to develop locally. Use `git clone git@github.com:<your-username>/seata.git` to clone repository to your local machine. Then you can create new branches to finish the change you wish to make.
+
+1. **Set Remote** upstream to be `git@github.com:apache/incubator-seata.git` using the following two commands:
+
+```
+git remote add upstream git@github.com:apache/incubator-seata.git
+git remote set-url --push upstream no-pushing
+```
+
+With this remote setting, you can check your git remote configuration like this:
+
+```
+$ git remote -v
+origin     git@github.com:<your-username>/seata.git (fetch)
+origin     git@github.com:<your-username>/seata.git (push)
+upstream   git@github.com:apache/incubator-seata.git (fetch)
+upstream   no-pushing (push)
+```
+
+Adding this, we can easily synchronize local branches with upstream branches.
+
+### Branch Definition
+
+Right now we assume every contribution via pull request is for [branch develop](https://github.com/apache/incubator-seata/tree/develop) in Seata. Before contributing, be aware of branch definition would help a lot.
+
+As a contributor, keep in mind again that every contribution via pull request is for branch develop. While in project Seata, there are several other branches, we generally call them release branches(such as 0.6.0,0.6.1), feature branches, hotfix branches and master branch.
+
+When officially releasing a version, there will be a release branch and named with the version number.
+
+After the release, we will merge the commit of the release branch into the master branch.
+
+When we find that there is a bug in a certain version, we will decide to fix it in a later version or fix it in a specific hotfix version. When we decide to fix the hotfix version, we will checkout the hotfix branch based on the corresponding release branch, perform code repair and verification, and merge it into the develop branch and the master branch.
+
+For larger features, we will pull out the feature branch for development and verification.
+
+
+### Commit Rules
+
+Actually in Seata, we take two rules serious when committing:
+
+* [Commit Message](#commit-message)
+* [Commit Content](#commit-content)
+
+#### Commit Message
+
+Commit message could help reviewers better understand what is the purpose of submitted PR. It could help accelerate the code review procedure as well. We encourage contributors to use **EXPLICIT** commit message rather than ambiguous message. In general, we advocate the following commit message type:
+
+* docs: xxxx. For example, "docs: add docs about Seata cluster installation".
+* feature: xxxx.For example, "feature: support oracle in AT mode".
+* bugfix: xxxx. For example, "bugfix: fix panic when input nil parameter".
+* refactor: xxxx. For example, "refactor: simplify to make codes more readable".
+* test: xxx. For example, "test: add unit test case for func InsertIntoArray".
+* other readable and explicit expression ways.
+
+On the other side, we discourage contributors from committing message like the following ways:
+
+* ~~fix bug~~
+* ~~update~~
+* ~~add doc~~
+
+If you get lost, please see [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/) for a start.
+
+#### Commit Content
+
+Commit content represents all content changes included in one commit. We had better include things in one single commit which could support reviewer's complete review without any other commits' help. In another word, contents in one single commit can pass the CI to avoid code mess. In brief, there are three minor rules for us to keep in mind:
+
+* avoid very large change in a commit;
+* complete and reviewable for each commit.
+* check git config(`user.name`, `user.email`) when committing to ensure that it is associated with your github ID.
+
+
+In addition, in the code change part, we suggest that all contributors should read the [code style of Seata](#code-style).
+
+No matter commit message, or commit content, we do take more emphasis on code review.
+
+
+### PR Description
+
+PR is the only way to make change to Seata project files. To help reviewers better get your purpose, PR description could not be too detailed. We encourage contributors to follow the [PR template](https://github.com/apache/incubator-seata/blob/develop/.github/PULL_REQUEST_TEMPLATE.md) to finish the pull request.
+
+## Test case contribution
+
+Any test case would be welcomed. Currently, Seata function test cases are high priority.
+
+* For unit test, you need to create a test file named `xxxTest.java` in the test directory of the same module. Recommend you to use the junit5 UT framework
+
+* For integration test, you can put the integration test in the test directory or the seata-test module. It is recommended to use the mockito test framework.
+
+## Engage to help anything
+
+We choose GitHub as the primary place for Seata to collaborate. So the latest updates of Seata are always here. Although contributions via PR is an explicit way to help, we still call for any other ways.
+
+* reply to other's issues if you could;
+* help solve other user's problems;
+* help review other's PR design;
+* help review other's codes in PR;
+* discuss about Seata to make things clearer;
+* advocate Seata technology beyond GitHub;
+* write blogs on Seata and so on.
+
+
+## Code Style
+
+Seata code style Comply with Alibaba Java Coding Guidelines.
+
+
+### Guidelines
+[Alibaba-Java-Coding-Guidelines](https://alibaba.github.io/Alibaba-Java-Coding-Guidelines/)
+
+
+### IDE Plugin Install(not necessary)
+
+*It is not necessary to install, if you want to find a problem when you are coding.*
+
+
+#### idea IDE
+[p3c-idea-plugin-install](https://github.com/alibaba/p3c/blob/master/idea-plugin/README.md)
+
+#### eclipse IDE
+[p3c-eclipse-plugin-install](https://github.com/alibaba/p3c/blob/master/eclipse-plugin/README.md)
+
+
+In a word, **ANY HELP IS CONTRIBUTION.**
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/intro.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/intro.md
new file mode 100644
index 00000000000..32b0703c697
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/intro.md
@@ -0,0 +1,47 @@
+---
+sidebar_position: 1
+---
+
+# Tutorial Intro
+
+Let's discover **Docusaurus in less than 5 minutes**.
+
+## Getting Started
+
+Get started by **creating a new site**.
+
+Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**.
+
+### What you'll need
+
+- [Node.js](https://nodejs.org/en/download/) version 19.5.0 or above:
+  - When installing Node.js, you are recommended to check all checkboxes related to dependencies.
+
+## Generate a new site
+
+Generate a new Docusaurus site using the **classic template**.
+
+The classic template will automatically be added to your project after you run the command:
+
+```bash
+npm init docusaurus@latest my-website classic
+```
+
+You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.
+
+The command also installs all necessary dependencies you need to run Docusaurus.
+
+## Start your site
+
+Run the development server:
+
+```bash
+cd my-website
+npm run start
+```
+
+The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.
+
+The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.
+
+Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/maturity.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/maturity.md
new file mode 100644
index 00000000000..4187dba06da
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/maturity.md
@@ -0,0 +1,88 @@
+---
+title: Maturity
+keywords: [ Maturity ]
+description: Maturity model assessment.
+---
+
+# Apache Seata™ (incubating) Maturity model assessment
+
+The following table is filled according to
+the [Apache Maturity Model](https://community.apache.org/apache-way/apache-project-maturity-model.html). Everyone is welcome to comment it.
+
+## Code
+
+| **ID**   | **Description**                                                                                                                                                                                                                                                | **Status**                                                                                                                                                                                                          |
+|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **CD10** | The project produces Open Source software for distribution to the public, at no charge.                                                                                                                                                                        | **YES** The source code for all seven projects associated with Apache Seata is licensed under the Apache License 2.0.                                                                                               |
+| **CD20** | Anyone can easily discover and access the project's code.                                                                                                                                                                                                      | **YES** All code repositories, including the official website, are hosted on GitHub.                                                                                                                                |
+| **CD30** | Anyone using standard, widely-available tools, can build the code in a reproducible way.                                                                                                                                                                       | **YES**  Apache Seata provides guidelines on how to compile and contribute in the [documentation](https://seata.apache.org/docs/developers/guide_dev).                                                              |
+| **CD40** | The full history of the project's code is available via a source code control system, in a way that allows anyone to recreate any released version.                                                                                                            | **YES** The code is managed using Git, allowing you to view the complete change history based on Git.                                                                                                               |
+| **CD50** | The source code control system establishes the provenance of each line of code in a reliable way, based on strong authentication of the committer. When third parties contribute code, commit messages provide reliable information about the code provenance. | **YES** The project uses GitHub and is managed by Apache Infra, ensuring the provenance of each line of code to a committer. Third-party contributions are accepted in accordance with the contributing guidelines. |
+
+### Licenses and Copyright
+
+| **ID**   | **Description**                                                                                                                                                                   | **Status**                                                                                                   |
+|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
+| **LC10** | The Apache License, version 2.0, covers the released code.                                                                                                                        | **YES** The project is licensed under the Apache License 2.0, and all source files include the APLv2 header. |
+| **LC20** | Libraries that are mandatory dependencies of the project's code do not create more restrictions than the Apache License does.                                                     | **YES** All dependencies are listed.                                                                         |
+| **LC30** | The libraries mentioned in LC20 are available as Open Source software.                                                                                                            | **YES** All dependencies are listed are available as Open Source software.                                   |
+| **LC40** | Committers are bound by an Individual Contributor Agreement (the "Apache iCLA") that defines which code they may commit and how they need to identify code that is not their own. | **YES** All the committers and PPMC members have iCLAs.                                                      |
+| **LC50** | The project clearly defines and documents the copyright ownership of everything that the project produces.                                                                        | **YES** And all source files are with APLv2 header.                                                          |
+
+### Releases
+
+| **ID**   | **Description**                                                                                                                                                        | **Status**                                                                                                                                                                                                                                  |
+|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **RE10** | Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term.                              | **YES** Source release is distributed via [dist.apache.org](https://dist.apache.org/repos/dist/release/incubator/seata/) and linked from [download page](https://seata.apache.org/download/seata-server).                                   |
+| **RE20** | The project's PPMC (Project Management Committee, see CS10) approves each software release in order to make the release an act of the Foundation.                      | **YES** All releases have been voted on and approved via [dev@seata.apache.org](mailto:dev@seata.apache.org) and [general@incubator.apache.org](mailto:general@incubator.apache.org), with each release receiving at least 3 binding votes. |
+| **RE30** | Releases are signed and/or distributed along with digests that anyone can reliably use to validate the downloaded archives.                                            | **YES** All Apache Seata releases are PGP-signed, and the corresponding [KEYS](https://downloads.apache.org/incubator/seata/KEYS) file is publicly available to verify release.                                                             |
+| **RE40** | The project can distribute convenience binaries alongside source code, but they are not Apache Releases, they are provided with no guarantee.                          | **YES** User can easily build binaries from source code.                                                                                                                                                                                    |
+| **RE50** | The project documents a repeatable release process so that someone new to the project can independently generate the complete set of artifacts required for a release. | **YES** The Apache Seata official website provides [documentation](https://seata.apache.org/docs/developers/ppmc-guide/release-guide_dev) on how to release Seata.                                                                          |
+
+### Quality
+
+| **ID**   | **Description**                                                                                                                                                                               | **Status**                                                                                                                                                                                                            |
+|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **QU10** | The project is open and honest about the quality of its code. Various levels of quality and maturity for various modules are natural and acceptable as long as they are clearly communicated. | **YES** We report issues through open GitHub issues and enforce strict unit test coverage requirements in CICD pipelines.                                                                                             |
+| **QU20** | The project puts a very high priority on producing secure software.                                                                                                                           | **YES** Security issues reported in previous releases are typically addressed in next version. To date, more than four CVE entries have been acknowledged and resolved.                                               |
+| **QU30** | The project provides a well-documented, secure and private channel to report security issues, along with a documented way of responding to them.                                              | **Yes** The Apache Seata GitHub issue templates and official [documentation](https://seata.apache.org/docs/developers/contributor-guide/reporting-security-issues_dev) provide guidance on reporting security issues. |
+| **QU40** | The project puts a high priority on backwards compatibility and aims to document any incompatible changes and provide tools and documentation to help users transition to new features.       | **Yes** Apache Seata ensures protocol, data, and API compatibility across all versions and provides [upgrade documentation](https://seata.apache.org/docs/ops/upgrade) for each release.                              |
+| **QU50** | The project strives to respond to documented bug reports in a timely manner.                                                                                                                  | **YES** We handle issues and pull requests (PRs) daily. To date, we have resolved over 4,000 issues and merged more than 3,000 PRs.                                                                                   |
+
+### Community
+
+| **ID**   | **Description**                                                                                                                                                        | **Status**                                                                                                                                                                                                                                                                                                               |
+|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **CO10** | The project has a well-known homepage that points to all the information required to operate according to this maturity model.                                         | **YES** The [official website](https://seata.apache.org/) contains all necessary information that users/developers required.                                                                                                                                                                                             |
+| **CO20** | The community welcomes contributions from anyone who acts in good faith and in a respectful manner, and who adds value to the project.                                 | **Yes** Apache Seata welcomes all contributors and provides [contributing guidelines](https://seata.apache.org/docs/next/developers/guide_dev) to assist with onboarding and collaboration.                                                                                                                              |
+| **CO30** | Contributions include source code, documentation, constructive bug reports, constructive discussions, marketing and generally anything that adds value to the project. | **YES** Apache Seata welcomes all valuable contributions to the project, including documentation improvements. Contributors even in non-code areas like documentation—have been nominated as committers in the past.                                                                                                     |
+| **CO40** | The community strives to be meritocratic and gives more rights and responsibilities to contributors who, over time, add value to the project.                          | **YES** In addition to the initial committers, 4 PPMC members and 18 committers(it includes 4 members who have become PPMC members from Committers) were elected during the incubation period.                                                                                                                           |
+| **CO50** | The project documents how contributors can earn more rights such as commit access or decision power, and applies these principles consistently.                        | **YES** The community has clear docs on nominating committers and PPMC members                                                                                                                                                                                                                                           |
+| **CO60** | The community operates based on consensus of its members (see CS10) who have decision power. Dictators, benevolent or not, are not welcome in Apache projects.         | **YES** The community conducts initial discussions via the mailing list. If diverging opinions arise, a formal vote will be initiated through the same channel, following the ASF's [Consensus Voting Guidelines](https://www.apache.org/foundation/voting.html).All decisions are made after vote by community members. |
+| **CO70** | The project strives to answer user questions in a timely manner.                                                                                                       | **YES** We use dev@seata.apache.org, [GitHub issue](https://github.com/apache/incubator-seata/issues) and [GitHub discussion](https://github.com/apache/incubator-seata/discussions) to do this in a timely manner.                                                                                                      |
+
+### Consensus
+
+| **ID**   | **Description**                                                                                                                                                                                                           | **Status**                                                                                                                                                     |
+|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **CS10** | The project maintains a public list of its contributors who have decision power. The project's PPMC (Project Management Committee) consists of those contributors.                                                        | **Yes** On the Seata official website's [Team page](https://seata.apache.org/docs/next/developers/team/), we maintain the list of PPMC members and committers. |
+| **CS20** | Decisions require a consensus among PPMC members and are documented on the project's main communications channel. The PPMC takes community opinions into account, but the PPMC has the final word.                        | **YES** All decisions are based on discussions and voting in the dev/private mailing group, and with at least 3 +1 votes from PPMC.                            |
+| **CS30** | The project uses documented voting rules to build consensus when discussion is not sufficient.                                                                                                                            | **YES** The project uses the standard ASF voting rules.                                                                                                        |
+| **CS40** | In Apache projects, vetoes are only valid for code commits. The person exercising the veto must justify it with a technical explanation, as per the Apache voting rules defined in CS30.                                  | **YES** Apache Seata community has not used the veto power yet except for code commits.                                                                        |
+| **CS50** | All "important" discussions happen asynchronously in written form on the project's main communications channel. Offline, face-to-face or private discussions that affect the project are also documented on that channel. | **YES** All important discussions are recorded in written form.                                                                                                |
+
+### Independence
+
+| **ID**   | **Description**                                                                          | **Status**                                                                                                                                                                         |
+|----------|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **IN10** | The project is independent from any corporate or organizational influence.               | **YES**  All PPMC members and committers nominated during the incubation period come from different companies, and more than 90% of their members are not from donation companies. |
+| **IN20** | Contributors act as themselves, not as representatives of a corporation or organization. | **YES** All contributions are made by individuals acting independently, not on behalf of companies or organizations.                                                               |
+
+### Trademark and Branding
+
+| **ID**   | **Description**                                                                                                                                                                   | **Status**                                                                                                                                  |
+|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
+| **TB10** | The project uses "Apache Foo™" as the project and software product name consistently, with appropriate <br/><br/><br/>trademark attributions.                                     | **YES**  We consistently use the name "Apache Seata™" across all official materials, including the logo, with proper trademark attribution. |
+| **TB20** | The project's primary homepage is at projectname.apache.org. When exceptions exist to use alternate domains for any purpose, any non-apache.org domain names are owned by the ASF | **YES**  The official homepage is located at https://seata.apache.org, fully complying with ASF domain usage policies.                      |
+| **TB30** | The ASF has trademark rights, including any registrations, to the project name, logo, and any other major branding elements.	                                                     | **YES**  The Apache Software Foundation owns the rights to the "Apache Seata™" name and branding under the standard ASF trademark policies. |
+| **TB40** | The project monitors for any major misuses of their project's brand by others, and reports any potential misuses to Brand Management.		                                           | **YES**  The PMC takes trademark issues very seriously, and we have reported cases of trademark misuse in our incubation reports.                      |
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/new-ppmc_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/new-ppmc_dev.md
new file mode 100644
index 00000000000..60cbef4d4ea
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/new-ppmc_dev.md
@@ -0,0 +1,24 @@
+---
+title: New PPMC Member Guide
+keywords: [Seata, PPMC, guide]
+description: New PPMC Member Guide
+---
+
+# New PPMC Member Guide
+This document primarily serves as a guide for new PPMC members to Apache Seata™ (incubating).
+
+Upon receiving an invitation email from Seata PPMC, a new PPMC member should consider whether accepting. If they decide in favor, they should select "Reply All" and express their decision.
+
+## Subscribe to Private Mailing List
+
+1. Send email to [private-subscribe@seata.apache.org](mailto:private-subscribe@seata.apache.org)
+2. You will receive an email with the subject "confirm subscribe to private@seata.apache.org"
+3. Reply to the email with "Confirm" in the body
+
+If you receive an email with the subject "WELCOME to private@seata.apache.org", you have successfully subscribed to the private mailing list.
+
+PPMC members are required to subscribe to the private@seata.apache.org mailing list, which is restricted to confidential discussions involving embargoed security vulnerability, or other sensitive matters that must not be publicly disclosed. This aligns with ASF’s Security Handling [Guidelines](https://www.apache.org/security/).
+
+## Read PMC Member Guide
+
+Please read [PMC GUIDE](https://www.apache.org/dev/pmc.html) to know about the general responsibilities of Project Management Committee (PMC) members in managing our project and common how-to procedures for day to day maintenance.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/nominate-committer_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/nominate-committer_dev.md
new file mode 100644
index 00000000000..4495ed1000a
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/nominate-committer_dev.md
@@ -0,0 +1,230 @@
+---
+title: Nominate Committer Guide
+keywords: [Nominate, Committer, guide]
+description: Nominate Committer Guide
+---
+
+# Nominate Committer Guide
+
+This document mainly introduces how the Apache Seata™ (incubating) PPMC member nominates a new committer.
+
+## Discuss the candidate
+
+Start a discuss the candidate via sending email to `private@seata.apache.org`:
+
+- candidate_name: The full name of the candidate.
+- candidate_github_id: The GitHub id of the candidate.
+
+Title:
+
+```
+[Discuss] Nomination of ${candidate_name} as a Committer for Apache Seata (Incubating)
+
+```
+
+Content:
+
+```
+Hi All,
+
+I'm reaching out to officially nominate ${candidate_name} [1] as a new
+committer for Apache Seata (incubating).
+
+${candidate_contributions}
+
+
+Feel free to share any thoughts or suggestions you might have!
+
+[1]. https://github.com/${candidate_github_id}
+
+Warm regards,
+
+${your_name}
+```
+
+## Start vote about the candidate
+
+Start a vote about the candidate via sending email to `private@seata.apache.org`:
+
+- candidate_name: The full name of the candidate.
+- candidate_github_id: The GitHub id of the candidate.
+- discussion_thread: The discussion thread URL.
+- vote_thread: The vote thread URL.
+
+Title:
+
+```
+[VOTE] New committer: ${candidate_name}
+```
+
+Content:
+
+```
+Hi All,
+
+We've been discussing ${candidate_name} [1] becoming a new committer for our community, as you might have seen in the discussion thread [2]. Now it's time to kick off the official voting process. We'd love for you to cast your vote and let us know if you support bringing ${candidate_name} on board as a new committer. Your input is super important in helping us make this decision.
+
+Voting ends one week from today.
+
+Please vote accordingly:
+
+[ ] +1 approve
+
+[ ] +0 no opinion
+
+[ ] -1 disapprove (and the reason)
+
+[1]. https://github.com/${candidate_github_id}
+[2]. https://lists.apache.org/thread/${discussion_thread}
+
+Warm regards,
+${your_name}
+```
+
+
+After at least 3 `+1` binding vote and no veto, claim the vote result:
+
+Title:
+
+```
+[RESULT] [VOTE] New committer:${candidate_name}
+```
+
+Content:
+
+```
+Hi All,
+
+The vote for ${candidate_name} to become a new committer has passed, with ${N}  +1 binding votes, no +0 or -1 votes.
+
+${N} (+1 binding)
+
+- XXX
+- YYY
+- ZZZ
+
+Vote thread: https://lists.apache.org/thread/${vote_thread}
+
+Warm regards,
+${your_name}
+```
+
+## Send invitation to the candidate
+
+Send an invitation to the candidate and cc `private@seata.apache.org`:
+
+Title:
+
+```
+Invitation to become Apache Seata(incubating) committer: ${candidate_name}
+```
+
+Content:
+
+```
+Hi ${candidate_name},
+
+The Apache Seata Podling Project Management Committee (PPMC) hereby offers
+you committer privileges to the project
+[as well as membership in the PMC]. These privileges are offered on
+the understanding that you'll use them
+reasonably and with common sense. We like to work on trust rather than
+unnecessary constraints.
+
+Being a committer enables you to more easily make changes without
+needing to go through the patch
+submission process. [Being a PMC member enables you to guide the
+direction of the project.]
+
+Being a committer does not require you to participate any more than
+you already do. It does
+tend to make one even more committed.  You will probably find that you
+spend more time here.
+
+Of course, you can decline and instead remain as a contributor,
+participating as you do now.
+
+This personal invitation is a chance for you to accept or decline in private.
+Please let us know in reply to this message whether you accept or decline.
+
+If you accept, you will need an Apache account (id) with privileges.
+Please follow these instructions.
+
+A. If you already have an ICLA on file:
+
+    1. If you already have an Apache account, let us know your id and
+we will grant you privileges on the project repositories.
+
+    2. If you have previously sent an ICLA, let us know the email
+address and public name used on the ICLA and your preferred Apache id,
+and
+we will request your account.
+
+    3. If the email address on the previously submitted ICLA is no
+longer valid, let us know the email address and public name used on
+the new ICLA,
+and your preferred Apache id. Continue to step B below and file your new ICLA.
+
+Look to see if your preferred ID is already taken at
+https://people.apache.org/committer-index.html
+
+B. If there is not already an ICLA on file, you need to submit an ICLA:
+
+    1. Details of the ICLA and the forms are found through this link:
+https://www.apache.org/licenses/#clas
+
+    2. Instructions for its completion and return to the Secretary of
+the ASF are found at
+    https://www.apache.org/licenses/contributor-agreements.html#submitting
+
+    Do not copy the project or any other individual on your message to
+Secretary, as the form contains Personally Identifiable Information
+    that should be kept private.
+
+    3. When you complete the ICLA form, be sure to include in the form
+the Apache Seata project and choose a
+    unique Apache ID. Look to see if your preferred ID is already
+taken at https://people.apache.org/committer-index.html
+    This will allow the Secretary to notify the PMC when your ICLA has
+been recorded.
+
+When recording of your ICLA is noted, you will receive a follow-up
+message with the next steps for  establishing you as a committer.
+
+Warm regards,
+${your_name}
+```
+
+## Add the candidate to the committer list
+
+After the candidate accepts the invitation and the iCLA is recorded, add the candidate to the committer list by
+[whimsy roster tools](https://whimsy.apache.org/roster/ppmc/seata#committers)
+
+
+## Announcement
+
+Once the nominee accepts the invitation and the commit bit is granted, it's encouraged to send an announcement email to `dev@seata.apache.org` to welcome the new committers. Here is an email template:
+
+Title:
+
+```
+Welcome new committer: ${candidate_name}
+```
+
+Content:
+
+```
+Hi Community,
+
+On behalf of the Apache Seata(incubating) PPMC, I am pleased to announce that ${candidate_name} [1], has been voted as a new committer.
+
+Please join me to say congratulations to him !
+
+${candidate_name}, would you please briefly introduce yourself to the community?
+
+
+[1]. https://github.com/${candidate_github_id}
+
+Warm regards,
+${your name}
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/nominate-ppmc_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/nominate-ppmc_dev.md
new file mode 100644
index 00000000000..c4c85123ad8
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/ppmc-guide/nominate-ppmc_dev.md
@@ -0,0 +1,175 @@
+---
+title: Nominate PPMC member Guide
+keywords: [Nominate, PPMC, guide]
+description: Nominate PPMC member Guide
+---
+
+# Nominate PPMC member Guide
+
+This document mainly introduces how the Apache Seata™ (incubating) PPMC member nominates a new PPMC member.
+
+## Discuss the candidate
+
+Start a discuss the candidate via sending email to `private@seata.apache.org`:
+
+- candidate_name: The full name of the candidate.
+- candidate_github_id: The GitHub id of the candidate.
+
+Title:
+
+```
+[Discuss] Nomination of ${candidate_name} as a PPMC member for Apache Seata (Incubating)
+
+```
+
+Content:
+
+```
+Hi All,
+
+I'm reaching out to officially nominate ${candidate_name} [1] as a new
+PPMC member for Apache Seata (incubating).
+
+${candidate_contributions}
+
+
+Feel free to share any thoughts or suggestions you might have!
+
+[1]. https://github.com/${candidate_github_id}
+
+Warm regards,
+
+${your_name}
+```
+
+## Start vote about the candidate
+
+Start a vote about the candidate via sending email to `private@seata.apache.org`:
+
+- candidate_name: The full name of the candidate.
+- candidate_github_id: The GitHub id of the candidate.
+- discussion_thread: The discussion thread URL.
+- vote_thread: The vote thread URL.
+
+Title:
+
+```
+[VOTE] New PPMC member: ${candidate_name}
+```
+
+Content:
+
+```
+Hi All,
+
+We've been discussing ${candidate_name} [1] becoming a new PPMC member for our community, as you might have seen in the discussion thread [2]. Now it's time to kick off the official voting process. We'd love for you to cast your vote and let us know if you support bringing ${candidate_name} on board as a new PPMC member. Your input is super
+important in helping us make this decision.
+
+Voting ends one week from today.
+
+Please vote accordingly:
+
+[ ] +1 approve
+
+[ ] +0 no opinion
+
+[ ] -1 disapprove (and the reason)
+
+[1]. https://github.com/${candidate_github_id}
+[2]. https://lists.apache.org/thread/${discussion_thread}
+
+Warm regards,
+${your_name}
+```
+
+
+After at least 3 `+1` binding vote and no veto, claim the vote result:
+
+Title:
+
+```
+[RESULT] [VOTE] New PPMC member:${candidate_name}
+```
+
+Content:
+
+```
+Hi All,
+
+The vote for ${candidate_name} to become a new PPMC member has passed, with ${N}  +1 binding votes, no +0 or -1 votes.
+
+${N} (+1 binding)
+
+- XXX
+- YYY
+- ZZZ
+
+Vote thread: https://lists.apache.org/thread/${vote_thread}
+
+Warm regards,
+${your_name}
+```
+
+## Send invitation to the candidate
+
+Send an invitation to the candidate and cc `private@seata.apache.org`:
+
+Title:
+
+```
+Invitation to become Apache Seata(incubating) PPMC member: ${candidate_name}
+```
+
+Content:
+
+```
+Hi ${candidate_name},
+
+The Seata Podling Project Management Committee (PPMC)  hereby offers
+you membership in the PPMC. These privileges are  offered on the
+understanding that you'll use them reasonably and with common sense.
+We like to work on trust rather than unnecessary constraints.
+
+Of course, you can decline and instead remain as a contributor,
+participating as you do now.
+
+This personal invitation is a chance for you to accept or decline in private.
+Please let us know in reply to this message whether you accept or decline.
+
+Warm regards,
+${your_name}
+```
+
+## Add the candidate to the PMC list
+
+After the candidate accepts the invitation and the iCLA is recorded, add the candidate to the PMC list by [whimsy
+roster tools](https://whimsy.apache.org/roster/ppmc/seata#pmc)
+
+
+## Announcement
+
+Once the nominee accepts the invitation and the commit bit is granted, it's encouraged to send an announcement email to `dev@seata.apache.org` to welcome the new PPMC member. Here is an email template:
+
+Title:
+
+```
+Welcome new PPMC member: ${candidate_name}
+```
+
+Content:
+
+```
+Hi Community,
+
+On behalf of the Apache Seata(incubating) PPMC, I am pleased to announce that ${candidate_name} [1], has been voted as a new PPMC member.
+
+Please join me to say congratulations to him !
+
+${candidate_name}, would you please briefly introduce yourself to the community?
+
+
+[1]. https://github.com/${candidate_github_id}
+
+Warm regards,
+${your name}
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/release-guide/release-guide_dev.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/release-guide/release-guide_dev.md
new file mode 100644
index 00000000000..0aaae7f0f60
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/release-guide/release-guide_dev.md
@@ -0,0 +1,581 @@
+---
+title: Release Guide
+keywords: [Seata]
+description: Release Guide.
+---
+
+# Release Guide
+
+## 1. Introduction
+
+#### 1.1 Apache Seata™ (incubating) Release Documentation
+
+Refer to the following links to understand the ASF release process:
+
+- [Apache Release Guide](http://www.apache.org/dev/release-publishing)
+- [Apache Release Policy](http://www.apache.org/dev/release.html)
+- [Maven Release Info](http://www.apache.org/dev/publishing-maven-artifacts.html)
+
+#### 1.2 PGP Signatures
+
+Following the Apache Release Guidelines, release versions must be signed, allowing users to verify if downloaded versions have been tampered with.
+
+Create a `pgp` key for signing releases, using **\<your Apache ID>@apache.org** as the key USER-ID.
+
+For details, refer to [Apache Releases Signing documentation](https://infra.apache.org/release-signing) and [Cryptography with OpenPGP](http://www.apache.org/dev/openpgp.html).
+
+Brief process for generating keys:
+
+- Generate a new `gpg` key using `gpg --full-gen-key`, setting the key length to 4096 bits
+
+    Note: You can set the key to never expire or set a specific expiration time. If you set an expiration time, you'll need to update your public key in the [DEV KEYS file](https://dist.apache.org/repos/dist/dev/incubator/seata/KEYS) and [RELEASE KEYS file](https://dist.apache.org/repos/dist/release/incubator/seata/KEYS) after renewal.
+
+- Upload the key to the public key server using `gpg --keyserver keys.openpgp.org --send-key <your key id>`
+
+    Note: If you can't access this server, you can upload your public key online via [OpenPGP Keyserver (ubuntu.com)](https://keyserver.ubuntu.com/)
+
+    ```
+    Use this command to find your keyid: gpg --list-signatures --keyid-format LONG
+    pub   rsa4096/XXXXXXXX 2024-09-19 [SC] [expires: 2027-09-19]
+                F2D3A28A392129B927C7FB42XXXXXXXX
+    uid                   [ultimate] xxxx <xx...@apache.org>
+    sig 3        XXXXXXXX 2024-09-19  [self-signature]
+    sub   rsa4096/XXXXX 2024-09-19 [E] [expires: 2027-09-19]
+    sig          XXXXXXXX 2024-09-19  [self-signature]
+    The keyid is XXXXXXXX
+    ```
+
+- Export your public key to a text file using `gpg --armor --output ./public-key.txt --export XXXXXXXX`
+
+- Append your generated key to the [DEV KEYS file](https://dist.apache.org/repos/dist/dev/incubator/seata/KEYS) and [RELEASE KEYS file](https://dist.apache.org/repos/dist/release/incubator/seata/KEYS)
+
+Note:
+
+The Release Manager can add keys to the DEV SVN repository themselves, but adding to the Release SVN repository requires PMC permissions. PMC members can help upload the keys.
+
+**Tips:** You should set a default public key. If you have multiple keys, modify `~/.gnupg/gpg.conf`.
+
+Reference example:
+
+```
+gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc.
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+
+Please select what kind of key you want:
+    (1) RSA and RSA (default)
+    (2) DSA and Elgamal
+    (3) DSA (sign only)
+    (4) RSA (sign only)
+Your selection? 1
+RSA keys may be between 1024 and 4096 bits long.
+What keysize do you want? (2048) 4096
+Requested keysize is 4096 bits
+Please specify how long the key should be valid.
+                0 = key does not expire
+         <n>  = key expires in n days
+         <n>w = key expires in n weeks
+         <n>m = key expires in n months
+         <n>y = key expires in n years
+Key is valid for? (0)
+Key does not expire at all
+Is this correct? (y/N) y
+
+GnuPG needs to construct a user ID to identify your key.
+
+Real name: (Set user name) (Use Apache ID)
+Email address: (Set email address) (Use Apache email)
+Comment: (Add comments)
+You selected this USER-ID:
+     "User Name (Comment) <Email Address>"
+
+Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
+You need a Passphrase to protect your secret key. (Set password)
+
+```
+
+Convert the generated public and private keys to ASCII format:
+
+```
+gpg --armor --output ./public-key.txt --export XXXXXXXX
+gpg --armor --output ./private-key.txt --export-secret-keys XXXXXXXX
+
+```
+
+View the key list:
+
+```
+[root@localhost ~]# gpg --list-signatures --keyid-format LONG
+[keyboxd]
+---------
+pub   rsa4096/XXXXXXXX 2024-09-19 [SC] [expires: 2027-09-19]
+            F2D3A28A392129B927C7FB42XXXXXXXX
+uid                   [ultimate] xxxx <xx...@apache.org>
+sig 3        XXXXXXXX 2024-09-19  [self-signature]
+sub   rsa4096/XXXXX 2024-09-19 [E] [expires: 2027-09-19]
+sig          XXXXXXXX 2024-09-19  [self-signature]
+
+```
+
+Upload the public key to the key server:
+
+```
+[root@localhost gpgtest]# gpg --keyserver keys.openpgp.org --send-key XXXXXXXX
+gpg: sending key XXXXXXXX to hkp server keys.openpgp.org
+
+```
+
+#### 1.3 POM Configuration
+
+Configure the POM file to deploy versions to the ASF Nexus repository.
+
+① Add Apache POM inheritance for default settings:
+
+```
+<parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>XX</version>
+</parent>
+
+```
+
+② Add key information in Maven configuration file `settings.xml`:
+
+```
+<settings>
+        <profiles>
+                <profile>
+                        <id>signed_release</id>
+                        <properties>
+                                <mavenExecutorId>forked-path</mavenExecutorId>
+                                <gpg.keyname>yourKeyName</gpg.keyname>
+                    <deploy.url>https://dist.apache.org/repos/dist/dev/incubator/seata/</deploy.url>
+                        </properties>
+                </profile>
+        </profiles>
+        <servers>
+                <!-- To publish a snapshot of some part of Maven -->
+                <server>
+                        <id>apache.snapshots.https</id>
+                        <username>yourApacheID</username>
+                        <!-- Use the password encryption by maven -->
+                        <password>yourApachePassword</password>
+                </server>
+                <!-- To stage a release of some part of Maven -->
+                <server>
+                        <id>apache.releases.https</id>
+                        <username>yourApacheID</username>
+                        <password>yourApachePassword</password>
+                </server>
+                <server>
+                        <id>gpg.passphrase</id>
+                        <passphrase>yourKeyPassword</passphrase>
+                </server>
+        </servers>
+</settings>
+
+```
+
+**Tips:** It's recommended to use [Maven's password encryption capabilities](http://maven.apache.org/guides/mini/guide-encryption.html) to encrypt `gpg.passphrase`
+
+#### 1.5 Publishing Release Notes
+
+Build Release Notes for the respective version through the [changelog](https://github.com/apache/incubator-seata/blob/2.x/changes/zh-cn/2.x.md).
+
+## 2. Release Process
+
+### 1. Preparing the Branch
+
+Create a new branch from the main branch as the release branch. For instance, if you're releasing version `${release_version}`, create a new branch `${release_version}` from the development branch. All changes, tags, and fixes related to the `${release_version}` Release Candidates should be made on this branch. Ensure all GitHub Actions CI tests pass on this branch. After the release is completed, merge it back into the main branch.
+
+Example: To release Java SDK version `2.2.0`, create a new branch `2.2.0` from the `2.x` branch, and commit changes to replace the Snapshot version number with the `2.2.0` version number on this branch.
+
+### 2. Pre-Release Binary Packages
+
+#### 2.1 Prepare the SDK release according to [publishing maven artifacts](https://infra.apache.org/publishing-maven-artifacts.html) [4] guidelines.
+
+```
+mvn clean deploy -Prelease -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
+```
+
+At this point, the Seata SDK is published to the [staging repository](https://repository.apache.org/#stagingRepositories) (requires Apache account login). Find the released version, `${STAGING.RELEASE}`, and click Close.
+
+Note: If closing fails, it's likely because the public key corresponding to your signing key is not available on keys.openpgp.org. Please verify through [OpenPGP Keyserver (ubuntu.com)](https://keyserver.ubuntu.com/)
+
+#### 2.2 Submit Source & Binary to SVN Repository
+
+##### 2.2.1 Install SVN
+
+Download and install [Apache Subversion Sources](https://subversion.apache.org/download.cgi#recommended-release)
+
+Or install via `brew install subversion`
+
+##### 2.2.2 Compile seata-server and seata-namingserver
+
+ `mvn -Prelease-seata -Dmaven.test.skip=true -Dskip.npm=true -T4C -Dpmd.skip=true clean install -U`
+
+##### 2.2.3 Sign Source and Binary packages
+
+For the Source package, it's recommended to download the zip directly from the corresponding version branch on GitHub (e.g., 2.2.0) to avoid local environment contamination, then rename it to apache-seata-x.x.x-incubating-src.zip
+
+`shasum -b -a 512 apache-seata-x.x.x-incubating-src.zip >> apache-seata-x.x.x-incubating-src.zip.sha512 `
+
+`gpg --armor --output apache-seata-x.x.x-incubating-bin.zip.asc apache-seata-x.x.x-incubating-bin.zip`
+
+For the Binary package:
+
+`shasum -b -a 512 apache-seata-x.x.x-incubating-bin.tar.gz >> apache-seata-x.x.x-incubating-bin.tar.gz.sha512`
+
+`gpg --armor --output apache-seata-x.x.x-incubating-bin.tar.gz.asc apache-seata-x.x.x-incubating-bin.tar.gz`
+
+Verify SHA512:
+
+`shasum -c apache-seata-x.x.x-incubating-bin.tar.gz.sha512`
+
+Verify ASC:
+
+`gpg --verify  apache-seata-x.x.x-incubating-src.zip.asc apache-seata-x.x.x-incubating-src.zip`
+
+##### 2.2.4 Pull SVN locally, create release version path, and move the signed files and Source/Binary packages into it
+
+Pull SVN directory:
+
+`svn co --depth=empty https://dist.apache.org/repos/dist/dev/incubator/seata/`
+
+Create release version path (in the dev path, folders must include "RC" to indicate they are in a preparatory state), and move files into it:
+
+`cd seata`
+
+`mkdir x.x.xRCN`
+
+`mv ….. x.x.x`
+
+After moving files in, it should look like this:
+
+```
+-rw-r--r--@ 1 fe-work  staff   180M  9 20 10:16 apache-seata-2.2.0-incubating-bin.tar.gz
+-rw-r--r--@ 1 fe-work  staff   180M  9 20 10:16 apache-seata-2.2.0-incubating-bin.tar.gz.asc
+-rw-r--r--@ 1 fe-work  staff   187B  9 20 10:16 apache-seata-2.2.0-incubating-bin.tar.gz.sha512
+-rw-r--r--@ 1 fe-work  staff   6.7M  9 20 10:16 apache-seata-2.2.0-incubating-src.zip
+-rw-r--r--@ 1 fe-work  staff   6.7M  9 20 10:16 apache-seata-2.2.0-incubating-src.zip.asc
+-rw-r--r--  1 fe-work  staff   300B  9 20 10:16 apache-seata-2.2.0-incubating-src.zip.sha512
+```
+
+Ensure the KEYS file in the parent seata directory has been updated with your public key as mentioned in step 1.
+
+Execute:
+
+`svn add x.x.x`
+
+`svn commit -m "submit x.x.x version" `
+
+If you've updated the KEYS file, execute `svn update KEYS` before committing.
+
+After the commit command, you'll be prompted to enter your Apache LDAP username and password. Once entered, the submission will be successful:
+
+```
+➜  seata svn commit -m 'submit 2.2.0 version'
+Adding       2.2.0
+Adding (bin) 2.2.0/apache-seata-2.2.0-incubating-bin.tar.gz
+Adding (bin) 2.2.0/apache-seata-2.2.0-incubating-bin.tar.gz.asc
+Adding       2.2.0/apache-seata-2.2.0-incubating-bin.tar.gz.sha512
+Adding (bin) 2.2.0/apache-seata-2.2.0-incubating-src.zip
+Adding (bin) 2.2.0/apache-seata-2.2.0-incubating-src.zip.asc
+Adding       2.2.0/apache-seata-2.2.0-incubating-src.zip.sha512
+Transmitting file data......done
+Reading transaction
+Committed revision 71769.
+```
+
+#### 2.3 Create tag and release note
+
+##### 2.3.1 Create tag
+
+In the x.x.x branch, execute:
+
+`git tag vx.x.x -m 'release: release for x.x.x'`
+
+`git push upstream(seata repository repo) vx.x.x`
+
+##### 2.3.2 Create release note
+
+Create a release note through [New release · apache/incubator-seata (github.com)](https://github.com/apache/incubator-seata/releases/new) and set "Choose a tag" to the corresponding tag.
+
+Mark it as "Set as a pre-release". After the overall vote passes, set it as "Set as the latest release".
+
+### 3. Voting Stage
+
+#### 3.1 Community Internal Voting
+
+**The vote must last at least 72 hours and receive at least 3 +1 binding votes**
+
+Send to:
+
+```
+dev@seata.apache.org
+```
+
+Subject:
+
+`[VOTE]Release Apache Seata (Incubating) x.x.x(RoundN)`
+
+Where N in RoundN represents the number of attempts. If a vote doesn't pass and the version is modified for a new vote, N should be incremented (e.g., if Round1 doesn't pass, the next vote would be Round2).
+
+Body:
+
+```
+Hi Seata Community,
+
+This is a call for vote to release Apache Seata(incubating) vx.x.x.
+
+The release candidates:
+https://dist.apache.org/repos/dist/dev/incubator/seata/x.x.x/
+
+The staging repo:
+https://repository.apache.org/content/repositories/${STAGING.RELEASE}/
+
+Git tag for the release:
+https://github.com/apache/incubator-seata/releases/tag/vx.x.x
+
+Hash for the release tag:
+ID of the last commit on the tag branch
+
+Release Notes:
+https://github.com/apache/incubator-seata/releases/tag/vx.x.x
+
+The artifacts have been signed with Key [ key-id ], corresponding
+to
+[ email like xxxx@apache.org ]
+which can be found in the keys file:
+https://downloads.apache.org/incubator/seata/KEYS
+
+Build Environment: JDK 8+, Apache Maven 3.6.0+.
+/mvnw clean package -DskipTests=true
+
+CI Test Workflow:
+CI pipeline links for the last commit of this version, such as:
+https://github.com/apache/incubator-seata/actions/runs/10938949607/job/30411922716
+https://github.com/apache/incubator-seata/actions/runs/10938949623/job/30410204492
+https://github.com/apache/incubator-seata/actions/runs/10938949605/job/30411747821
+
+The vote will be open for at least 72 hours.
+
+Please vote accordingly:
+
+[ ] +1 approve
+[ ] +0 no opinion
+[ ] -1 disapprove with the reason
+
+Checklist for reference:
+
+[ ] Download links are valid.
+[ ] Checksums and signatures.
+[ ] LICENSE/NOTICE files exist
+[ ] No unexpected binary files
+[ ] All source files have ASF headers
+[ ] Can compile from source
+
+To learn more about Apache Seata , please see https://seata.apache.org/
+
+```
+
+#### 3.1.2 Complete the vote
+
+Send a vote passed email:
+
+```
+Hi Community,
+
+
+The vote to release Apache Seata (Incubating) vx.x.x has passed
+with 3 +1 binding votes, and no +0 or -1 votes.
+
+3 (+1 binding)
+
+- XXX
+
+- XXX
+
+- XXX
+
+no further 0 or -1 votes.
+
+
+The vote thread:
+The link to the corresponding vote email thread, e.g.:
+https://lists.apache.org/thread/rwco6lms9qo10whjj8gg1dr8j7drl2gf
+
+Thank you for reviewing and voting for our release candidate.
+
+We will soon launch the second stage of voting.
+```
+
+#### 3.2.1 Voting in the Incubator
+
+Similar to community voting, but you need to add links to the community vote thread to prove consensus was reached within the community.
+
+Send an email to `general@incubator.apache.org`
+
+Subject:
+
+`[VOTE]Release Apache Seata (Incubating) x.x.x(RoundN)`
+
+**The vote must last at least 72 hours and receive at least 3 +1 binding votes**
+
+```
+Hello everyone,
+
+This is a call for vote to release Apache Seata(incubating) vx.x.x
+
+The Apache Seata community has voted and approved the release of Apache
+Seata(incubating) vx.x.x. We now kindly request the IPMC members
+review and vote for this release.
+
+
+The vote thread:
+Community vote thread link, e.g.:
+https://lists.apache.org/thread/rwco6lms9qo10whjj8gg1dr8j7drl2gf
+
+Vote Result:
+Community vote result thread link, e.g.:
+https://lists.apache.org/thread/ybo9c5hrx2h2glg2bdgs3t22xg734y7r
+
+The release candidates:
+https://dist.apache.org/repos/dist/dev/incubator/seata/x.x.x/
+
+The staging repo:
+https://repository.apache.org/content/repositories/${STAGING.RELEASE}/
+
+Git tag for the release:
+https://github.com/apache/incubator-seata/releases/tag/vx.x.x
+
+Hash for the release tag:
+ID of the last commit on the tag branch
+
+Release Notes:
+https://github.com/apache/incubator-seata/releases/tag/vx.x.x
+
+The artifacts have been signed with Key [ key-id ], corresponding
+to
+[ email like xxxx@apache.org ]
+which can be found in the keys file:
+https://downloads.apache.org/incubator/seata/KEYS
+
+Build Environment: JDK 8+, Apache Maven 3.6.0+.
+/mvnw clean package -DskipTests=true
+
+CI Test Workflow:
+CI pipeline links for the last commit of this version, such as:
+https://github.com/apache/incubator-seata/actions/runs/10938949607/job/30411922716
+https://github.com/apache/incubator-seata/actions/runs/10938949623/job/30410204492
+https://github.com/apache/incubator-seata/actions/runs/10938949605/job/30411747821
+
+The vote will be open for at least 72 hours.
+
+Please vote accordingly:
+
+[ ] +1 approve
+[ ] +0 no opinion
+[ ] -1 disapprove with the reason
+
+Checklist for reference:
+
+[ ] Download links are valid.
+[ ] Checksums and signatures.
+[ ] LICENSE/NOTICE files exist
+[ ] No unexpected binary files
+[ ] All source files have ASF headers
+[ ] Can compile from source
+
+To learn more about Apache Seata , please see https://seata.apache.org/
+```
+
+#### 3.2.2 Announce the Incubator vote result
+
+After 72 hours, if there are at least 3 passing votes and no opposing votes, send an email as follows:
+
+Send an email to `general@incubator.apache.org`
+
+Subject: `[RESULT][VOTE] Release Apache Seata (incubating) x.x.x(RoundN)`
+
+```
+Hi Incubator PMC,
+
+The vote to release Apache Seata(incubating) X.X.X has passed with
+3 +1 binding and 1 +1 non-binding votes, no +0 or -1 votes.
+
+Binding votes:
+
+- XXX
+- XXX
+- XXX
+
+Non-Binding votes:
+
+- XXX
+
+Vote thread:
+https://lists.apache.org/thread/o7vwdvtolclcv1y4j4ozshj923ppwlnl
+
+Thanks for reviewing and voting for our release candidate. We will
+proceed with publishing the approved artifacts and sending out the
+announcement soon.
+
+```
+
+### 3.2.3 Vote Interruption
+
+If issues are found during the voting process, such as license problems or bugs that need to be fixed before release, the vote must be interrupted.
+
+Subject: `[CANCEL][VOTE] Release Apache Seata (incubating) x.x.x(RoundN)`
+
+```
+Hi Incubator PMC,
+I'm cancelling this vote:
+Link to the previous vote
+
+Describe the reason for cancellation: such as missing licenses, or bugs in the version
+
+```
+
+Note: After cancelling a vote in the Incubator, a new vote must start again from within the community.
+
+# 4. Complete the Release
+
+### 4.1 Release the Version
+
+1. From Apache Nexus repository, select the previously closed **orgapacheseata-XXX** and click the `Release` icon to publish.
+
+2. Move the signature files, src, and bin from the dev path to the release path using the following command:
+
+     `svn mv https://dist.apache.org/repos/dist/dev/incubator/seata/incubator-seata/x.x.x-RCN https://dist.apache.org/repos/dist/release/incubator/seata/x.x.x -m "Release Seata X.X.X"`
+
+3. Set the previous release note to "Set as the latest release" and submit.
+
+4. Update the documentation for version x.x.x on the Seata official website, and add download links for the binary and source packages.
+
+### 4.2 Announce the Release
+
+Send an email to `general@incubator.apache.org`
+
+Subject: `[ANNOUNCE] Apache Seata(Incubating) vx.x.x available`
+
+```
+Hi All,
+
+The Apache Seata(Incubating) vx.x.x has been released!
+
+Apache Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+Download Links: https://seata.apache.org/download/seata-server/
+
+Release Notes:
+https://github.com/apache/incubator-seata/releases/tag/vx.x.x/
+
+Website: https://seata.apache.org/
+
+Resources:
+- Issue: https://github.com/apache/incubator-seata/issues
+- Mailing list: dev@seata.apache.org
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/team/team.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/team/team.md
new file mode 100644
index 00000000000..a830ae761f5
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/developers/team/team.md
@@ -0,0 +1,13 @@
+---
+title: Team
+keywords: [Seata]
+description: Team.
+---
+# Team
+Welcome to the Apache Seata™ (incubating) community. We extend our heartfelt gratitude to all contributors for your dedication, expertise, and invaluable efforts in advancing this community-driven project. Your collaboration has been instrumental in shaping its success.
+
+## PPMC members and Committers
+The committers list could be found [here](https://people.apache.org/phonebook.html?podling=seata).
+
+## Contributors
+The contributor list can be viewed from the contributor page of each GitHub repo.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-142.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-142.md
new file mode 100644
index 00000000000..c68db56bf1e
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-142.md
@@ -0,0 +1,118 @@
+---
+hidden: true
+title: Deploy Seata Server By Docker
+keywords: [docker,docker-compose,ops]
+description: Deploy Seata Server by Docker
+author: helloworlde
+date: 2019-11-25
+---
+
+# Deploy Seata Server By Docker
+
+## Precautions 
+- Please avoid directly pulling the latest version image. The latest version is not necessarily a stable version. To avoid unnecessary problems, please go to [docker image warehouse](https://hub.docker.com/r/seataio/seata-server/tags) to determine the image version to be pulled.
+
+## Quick Start
+
+#### Start seata-server instance
+
+```bash
+$ docker run --name seata-server -p 8091:8091 seataio/seata-server:1.4.2
+```
+
+#### Specify seata-server IP and port to start
+
+```bash
+$ docker run --name seata-server \
+         -p 8091:8091 \
+         -e SEATA_IP=192.168.1.1 \
+         -e SEATA_PORT=8091 \
+         seataio/seata-server
+```
+
+#### Docker compose startup
+
+Take `docker-compose.yaml` for example
+
+```yaml
+version: "3"
+services:
+   seata-server:
+     image: seataio/seata-server:${latest-release-version}
+     hostname: seata-server
+     ports:
+       - "8091:8091"
+     environment:
+       - SEATA_PORT=8091
+       - STORE_MODE=file
+```
+
+## Container command line and view logs
+
+```bash
+$ docker exec -it seata-server sh
+```
+
+```bash
+$ docker logs -f seata-server
+```
+
+## Use custom configuration file
+
+Custom configuration files need to be implemented by mounting files. Mount `registry.conf` and `file.conf` on the host to the corresponding directory in the container.
+
+- Specify registry.conf
+
+When using a custom configuration file, the environment variable `SEATA_CONFIG_NAME` must be specified, and the value needs to start with `file:`, such as: `file:/root/seata-config/registry`
+
+```bash
+$ docker run --name seata-server \
+         -p 8091:8091 \
+         -e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
+         -v /User/seata/config:/root/seata-config \
+         seataio/seata-server
+```
+
+Among them `-e` is used to configure environment variables, `-v` is used to mount the host directory.
+
+- Specify file.conf
+
+If you also need to specify the `file.conf` configuration file at the same time, you need to change the `config` configuration in the `registry.conf` file to the following content. The value of `name` is the corresponding path in the container.
+
+```
+config {
+   type = "file"
+
+   file {
+     name = "file:/root/seata-config/file.conf"
+   }
+}
+```
+
+## Environment variables
+
+seata-server supports the following environment variables:
+
+- **SEATA_IP**
+
+> Optional. It specifies the IP started by seata-server. This IP is used when registering with the registration center, such as eureka, etc.
+
+- **SEATA_PORT**
+
+> Optional. It is used to specify the port where seata-server starts. The default port is `8091`.
+
+- **STORE_MODE**
+
+> Optional. It is used to specify the transaction log storage method of seata-server, supports `db`, `file`, `redis` (supported by Seata-Server 1.3 and above). The default value is `file`.
+
+- **SERVER_NODE**
+
+> Optional. It is used to specify the seata-server node ID, such as `1`,`2`,`3`... The default value is `generated based on ip`.
+
+- **SEATA_ENV**
+
+> Optional. It is used to specify the seata-server operating environment, such as `dev`, `test`, etc. When the service is started, configurations such as `registry-dev.conf` will be used.
+
+- **SEATA_CONFIG_NAME**
+
+> Optional. It is used to specify the configuration file location, such as `file:/root/registry`, which will load `/root/registry.conf` as the configuration file. If you need to specify the `file.conf` file at the same time, you need to change the value of `config.file.name` in `registry.conf` to something like `file:/root/file.conf`.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-compose-142.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-compose-142.md
new file mode 100644
index 00000000000..98d73b6ecd3
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-compose-142.md
@@ -0,0 +1,336 @@
+---
+hidden: true
+title: Deploy Seata Server By Docker Compose
+keywords: [docker-compose,ops]
+description: Deploy Seata Server By Docker Compose
+author: zouwei
+date: 2021-12-05
+---
+
+# Deploy Seata Server By Docker Compose
+
+## Version Deployment History 
+
+[Version before 1.5.0](/docs/ops/deploy-by-docker-compose-142)
+
+[Version 1.5.0 and above](/docs/ops/deploy-by-docker-compose)
+
+## Precautions 
+- Please avoid directly pulling the latest version image. The latest version is not necessarily a stable version. To avoid unnecessary problems, please go to [docker image warehouse](https://hub.docker.com/r/seataio/seata-server/tags) to determine the image version to be pulled.
+
+## Quick Start
+
+* <a href="#file-file">No Registration Center, File Storage</a>
+* <a href="#file-db">No Registration Center, db Storage</a>
+* <a href="#nacos-db">Nacos Registration Center, db Storage</a>
+* <a href="#ha-nacos-db">High Available Usage Deployment</a>
+
+### <a id="file-file">No Registration Center, File Storage</a>
+
+In this mode, there is no need for a registration center or any third-party storage center.
+
+docker-compose.yaml
+```yaml
+version: "3.1"
+services:
+  seata-server:
+    image: seataio/seata-server:${latest-release-version}
+    hostname: seata-server
+    ports:
+      - "8091:8091"
+    environment:
+      - SEATA_PORT=8091
+      - STORE_MODE=file
+```
+
+### <a id="file-db">No Registration Center, db Storage</a>
+
+> The db mode needs to create the corresponding table structure in the database, please refer to <a href="https://github.com/apache/incubator-seata/tree/develop/script/server/db">[table creation script]</a>.
+
+**(1) Prepare configuration file: file.conf**
+
+For more storage mode support, please refer to <a href="https://github.com/apache/incubator-seata/blob/develop/script/config-center/config.txt">More Storage Modes</a>.
+
+```properties
+# Storage mode
+store.mode=db
+
+store.db.datasource=druid
+store.db.dbType=mysql
+# Need to adjust driverClassName according to mysql version
+# Driver corresponding to mysql8 and above versions is: com.mysql.cj.jdbc.Driver
+# Driver for versions below mysql8 is: com.mysql.jdbc.Driver
+store.db.driverClassName=com.mysql.cj.jdbc.Driver
+# Pay attention to adjusting the parameters host and port according to the actual production situation.
+store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
+# database username
+store.db.user=
+# Username Password
+store.db.password=
+```
+
+**(2) Prepare file: registry.conf**
+
+For more registration center support, please refer to <a href="/docs/user/registry/">Registration Center</a>
+
+For more configuration center support, please refer to <a href="/docs/user/configuration/">Configuration Center</a>
+
+Direct connection mode (no registration center)
+
+```
+registry {
+   type = "file"
+}
+
+config {
+   type = "file"
+  
+   file {
+     name="file:/root/seata-config/file.conf"
+   }
+}
+```
+
+**(3) Prepare file: docker-compose.yaml**
+```yaml
+version: "3.1"
+services:
+   seata-server:
+     image: seataio/seata-server:${latest-release-version}
+     hostname: seata-server
+     ports:
+       - "8091:8091"
+     environment:
+       - SEATA_PORT=8091
+       - SEATA_CONFIG_NAME=file:/root/seata-config/registry
+     volumes:
+     # You need to put both file.conf and registry.conf in the ./seata-server/config folder
+       - "./seata-server/config:/root/seata-config"
+```
+
+### <a id="nacos-db">Nacos Registration Center, db Storage</a>
+
+> The db mode needs to create the corresponding table structure in the database, please refer to <a href="https://github.com/apache/incubator-seata/tree/develop/script/server/db">[table creation script]</a>.
+
+**(1) Prepare file: registry.conf**
+
+Nacos Registration Center.
+
+For more registration center support, please refer to <a href="/docs/user/registry/">Registration Center</a>
+
+For more configuration center support, please refer to <a href="/docs/user/configuration/">Configuration Center</a>
+
+```
+registry {
+   type = "nacos"
+  
+   nacos {
+   # The alias the seata service is registered on nacos, and the client calls the service through this alias.
+     application = "seata-server"
+   # Please configure the IP and port of the nacos service according to the actual production environment.
+     serverAddr = "127.0.0.1:8848"
+   # The namespace specified on nacos
+     namespace = ""
+     cluster = "default"
+     username = "nacos"
+     password = "nacos"
+   }
+}
+
+config {
+   type = "nacos"
+  
+   nacos {
+     # Please configure the IP and port of the nacos service according to the actual production environment.
+     serverAddr = "127.0.0.1:8848"
+     # The namespace specified on nacos
+     namespace = ""
+     group = "SEATA_GROUP"
+     username = "nacos"
+     password = "nacos"
+   # Starting from v1.4.2, it has been supported to obtain all configuration information from one Nacos dataId. You only need to add an additional dataId configuration item.
+     dataId: "seataServer.properties"
+   }
+}
+```
+
+**(2) Prepare nacos configuration center configuration**
+
+For more storage mode support, please refer to <a href="https://github.com/apache/incubator-seata/blob/develop/script/config-center/config.txt">More storage modes</a>.
+
+> You need to create a new configuration in nacos, where the dataId is seataServer.properties
+
+```properties
+# Storage mode
+store.mode=db
+
+store.db.datasource=druid
+store.db.dbType=mysql
+# Need to adjust driverClassName according to mysql version
+# Driver corresponding to mysql8 and above versions is: com.mysql.cj.jdbc.Driver
+# Driver for versions below mysql8 is: com.mysql.jdbc.Driver
+store.db.driverClassName=com.mysql.cj.jdbc.Driver
+# Pay attention to adjusting the parameters host and port according to the actual production situation.
+store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
+# database username
+store.db.user= "usernanme"
+# Username Password
+store.db.password= "password"
+```
+
+**(3) Prepare file: docker-compose.yaml**
+
+```yaml
+version: "3.1"
+services:
+   seata-server:
+     image: seataio/seata-server:${latest-release-version}
+     hostname: seata-server
+     ports:
+       - "8091:8091"
+     environment:
+       # Specify the seata service startup port
+       - SEATA_PORT=8091
+       # Specify the Ip registered to nacos. The client will access the seata service through this IP.
+       # Pay attention to the difference between public network IP and internal network IP.
+       - SEATA_IP=127.0.0.1
+       - SEATA_CONFIG_NAME=file:/root/seata-config/registry
+     volumes:
+     # Because registry.conf is the nacos configuration center, you only need to put registry.conf in the ./seata-server/config folder
+       - "./seata-server/config:/root/seata-config"
+```
+
+### <a id="ha-nacos-db">High Available Usage Deployment</a>
+
+> Seata high availability usage deployment relies on the registration center and database, but does not depend on the configuration center.
+
+> The db mode needs to create the corresponding table structure in the database,  please refer to <a href="https://github.com/apache/incubator-seata/tree/develop/script/server/db">[table creation script]</a>.
+
+**(1) Prepare configuration file: file.conf**
+
+For more storage mode support, please refer to <a href="https://github.com/apache/incubator-seata/blob/develop/script/config-center/config.txt">More Storage Modes</a>.
+
+```properties
+# Storage mode
+store.mode=db
+
+store.db.datasource=druid
+store.db.dbType=mysql
+# Need to adjust driverClassName according to mysql version
+# Driver corresponding to mysql8 and above versions is: com.mysql.cj.jdbc.Driver
+# Driver for versions below mysql8 is: com.mysql.jdbc.Driver
+store.db.driverClassName=com.mysql.cj.jdbc.Driver
+# Pay attention to adjusting the parameters host and port according to the actual production situation.
+store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
+# database username
+store.db.user=
+# Username Password
+store.db.password=
+```
+
+**(2) Prepare file: registry.conf**
+
+Nacos registration center.
+
+For more registration center support, please refer to <a href="/docs/user/registry/">Registration Center</a>
+
+For more configuration center support, please refer to <a href="/docs/user/configuration/">Configuration Center</a>
+
+```
+registry {
+   type = "nacos"
+  
+   nacos {
+   # The alias the seata service is registered on nacos, and the client calls the service through this alias.
+     application = "seata-server"
+   #IP and port of nacos service
+     serverAddr = "127.0.0.1:8848"
+   # The namespace specified on nacos
+     namespace = ""
+     cluster = "default"
+     username = "nacos"
+     password = "nacos"
+   }
+}
+
+config {
+   type = "file"
+  
+   file {
+     name="file:/root/seata-config/file.conf"
+   }
+}
+```
+
+**(3) Prepare file: docker-compose.yaml**
+
+> As long as the configuration is consistent, the seata service can be deployed on multiple instances on one machine or on multiple different hosts at the same time to achieve high service availability. <br />
+> [High Availability Usage Deployment](/docs/ops/deploy-ha)
+
+```yaml
+version: "3.1"
+services:
+   #seataservice1
+   seata-server-1:
+     image: seataio/seata-server:${latest-release-version}
+     hostname: seata-server
+     ports:
+       - "8091:8091"
+     environment:
+       # Specify the seata service startup port
+       - SEATA_PORT=8091
+       # Specify the Ip registered to nacos. The client will access the seata service through this IP.
+       # Pay attention to the difference between public network IP and internal network IP.
+       - SEATA_IP=127.0.0.1
+       - SEATA_CONFIG_NAME=file:/root/seata-config/registry
+     volumes:
+     # You need to put both file.conf and registry.conf in the ./seata-server/config folder
+       - "./seata-server/config:/root/seata-config"
+   # seataservice2
+   seata-server-2:
+     image: seataio/seata-server:${latest-release-version}
+     hostname: seata-server
+     ports:
+       - "8092:8092"
+     environment:
+       # Specify the seata service startup port
+       - SEATA_PORT=8092
+       # Specify the Ip registered to nacos. The client will access the seata service through this IP.
+       # Pay attention to the difference between public network IP and internal network IP.
+       - SEATA_IP=127.0.0.1
+       - SEATA_CONFIG_NAME=file:/root/seata-config/registry
+     volumes:
+     # You need to put both file.conf and registry.conf in the ./seata-server/config folder
+       - "./seata-server/config:/root/seata-config"
+  
+   # seata service 3......seata service N
+```
+
+
+## Environment variables
+
+seata-server supports the following environment variables:
+
+- **SEATA_IP**
+
+> Optional. It specifies the IP started by seata-server. This IP is used when registering with the registration center, such as eureka, etc.
+
+- **SEATA_PORT**
+
+> Optional. It is used to specify the port where seata-server starts. The default port is `8091`.
+
+- **STORE_MODE**
+
+> Optional. It is used to specify the transaction log storage method of seata-server, supports `db`, `file`, `redis` (supported by Seata-Server 1.3 and above). The default value is `file`.
+
+- **SERVER_NODE**
+
+> Optional. It is used to specify the seata-server node ID, such as `1`,`2`,`3`... The default value is `generated based on ip`.
+
+- **SEATA_ENV**
+
+> Optional. It is used to specify the seata-server operating environment, such as `dev`, `test`, etc. When the service is started, configurations such as `registry-dev.conf` will be used.
+
+- **SEATA_CONFIG_NAME**
+
+> Optional. It is used to specify the configuration file location, such as `file:/root/registry`, which will load `/root/registry.conf` as the configuration file. If you need to specify the `file.conf` file at the same time, you need to change the value of `config.file.name` in `registry.conf` to something like `file:/root/file.conf`.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-compose.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-compose.md
new file mode 100644
index 00000000000..8bbcdd9649a
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker-compose.md
@@ -0,0 +1,492 @@
+---
+hidden: true
+title: Deploy Seata Server By Docker Compose
+keywords: [docker-compose,ops]
+description: Deploy Seata Server By Docker Compose
+author: zouwei
+date: 2022-09-06
+---
+
+# Deploy Seata Server By Docker Compose
+
+## Precautions
+- Please avoid directly pulling the latest version image. The latest version is not necessarily a stable version. To avoid unnecessary problems, please go to [docker image warehouse](https://hub.docker.com/r/apache/seata-server/tags) to determine the image version to be pulled.
+- Starting from Seata Server version 1.5.0, the configuration file has been changed to application.yml. So when using custom configuration, you need to copy the native configuration first.
+
+## Use custom configuration file
+In order to obtain the configuration file of seata server 1.5.0, we need to first start a service of seata server 1.5.0, then copy the default configuration file from the started container instance, and then modify it.
+
+docker-compose.yaml
+```yaml
+version: "3.1"
+services:
+  seata-server:
+    image: apache/seata-server:${latest-release-version}
+    ports:
+      - "7091:7091"
+      - "8091:8091"
+```
+
+Next, copy the resource file in the `/seata-server/resources` location in the container to the specified location of the host through the `docker cp` command.
+In the specified location of the host, we can see the corresponding `application.yml` configuration file, and the relevant configuration only needs to modify this file.
+
+> The configuration of `application.yml` can refer to [application.example.yml](https://github.com/apache/incubator-seata/blob/develop/server/src/main/resources/application.example.yml)
+
+## Quick Start
+
+* <a href="#file-file">No Registration Center, File Storage</a>
+* <a href="#file-db">No Registration Center, db Storage</a>
+* <a href="#nacos-db">Nacos Registration Center, db Storage</a>
+* <a href="#ha-nacos-db">High Available Usage Deployment</a>
+
+### <a id="file-file">No Registration Center, File Storage</a>
+
+In this mode, there is no need for a registration center or any third-party storage center.
+
+docker-compose.yaml
+```yaml
+version: "3.1"
+services:
+  seata-server:
+    image: apache/seata-server:${latest-release-version}
+    hostname: seata-server
+    ports:
+      - "7091:7091"
+      - "8091:8091"
+    environment:
+      - SEATA_PORT=8091
+      - STORE_MODE=file
+```
+
+### <a id="file-db">No Registration Center, db Storage</a>
+
+> The db mode needs to create the corresponding table structure in the database, please refer to <a href="https://github.com/apache/incubator-seata/tree/develop/script/server/db">[table creation script]</a>.
+
+**(1)application.yml**
+
+> The configuration of `application.yml` can refer to [application.example.yml](https://github.com/apache/incubator-seata/blob/develop/server/src/main/resources/application.example.yml)
+
+For more storage mode support, please refer to <a href="https://github.com/apache/incubator-seata/blob/develop/script/config-center/config.txt">More Storage Modes</a>.
+
+```yaml
+server:
+  port: 7091
+
+spring:
+  application:
+    name: seata-server
+
+logging:
+  config: classpath:logback-spring.xml
+  file:
+    path: ${user.home}/logs/seata
+  extend:
+    logstash-appender:
+      destination: 127.0.0.1:4560
+    kafka-appender:
+      bootstrap-servers: 127.0.0.1:9092
+      topic: logback_to_logstash
+
+console:
+  user:
+    username: seata
+    password: seata
+
+seata:
+  config:
+    # support: nacos, consul, apollo, zk, etcd3
+    type: file
+  registry:
+    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
+    type: file
+  store:
+    # support: file 、 db 、 redis
+    mode: db
+    db:
+      datasource: druid
+      dbType: mysql
+      # Need to adjust driverClassName according to mysql version
+      # Driver corresponding to mysql8 and above versions is: com.mysql.cj.jdbc.Driver
+      # Driver for versions below mysql8 is: com.mysql.jdbc.Driver
+      driverClassName: com.mysql.cj.jdbc.Driver
+      url: jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
+      user: "username"
+      password: "password"
+
+  #  server:
+  #    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
+  security:
+    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
+    tokenValidityInMilliseconds: 1800000
+    ignore:
+      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login
+```
+
+**(2)Prepare file: docker-compose.yaml**
+```yaml
+version: "3.1"
+services:
+  seata-server:
+    image: apache/seata-server:2.1.0
+    ports:
+      - "7091:7091"
+      - "8091:8091"
+    environment:
+      - STORE_MODE=db
+      # Register the seata server with SEATA_IP as the host
+      - SEATA_IP=seata_ip
+      - SEATA_PORT=8091
+    volumes:
+      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime" # Set the system time zone
+      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"  # Set the time zone
+      # Suppose we copy the resource file to the relative path `./seata-server/resources` via the `docker cp` command
+      # If you have questions, please read [Precautions] and [Using Custom Configuration Files] above
+      - "./seata-server/resources:/seata-server/resources"
+```
+
+### <a id="nacos-db">Nacos Registration Center, db Storage</a>
+
+> The db mode needs to create the corresponding table structure in the database, please refer to <a href="https://github.com/apache/incubator-seata/tree/develop/script/server/db">[table creation script]</a>.
+
+**(1)application.yml**
+
+> The configuration of `application.yml` can refer to [application.example.yml](https://github.com/apache/incubator-seata/blob/develop/server/src/main/resources/application.example.yml)
+
+Nacos Registration Center.
+
+```yaml
+server:
+  port: 7091
+
+spring:
+  application:
+    name: seata-server
+
+logging:
+  config: classpath:logback-spring.xml
+  file:
+    path: ${user.home}/logs/seata
+  extend:
+    logstash-appender:
+      destination: 127.0.0.1:4560
+    kafka-appender:
+      bootstrap-servers: 127.0.0.1:9092
+      topic: logback_to_logstash
+
+console:
+  user:
+    username: seata
+    password: seata
+
+seata:
+  config:
+    # support: nacos, consul, apollo, zk, etcd3
+    type: nacos
+    nacos:
+      server-addr: nacos_ip:nacos_port
+      namespace: seata-server
+      group: SEATA_GROUP
+      username: nacos
+      password: nacos
+      data-id: seataServer.properties
+
+  registry:
+    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
+    type: nacos
+    nacos:
+      application: seata-server
+      server-addr: nacos_ip:nacos_port
+      group: SEATA_GROUP
+      namespace: seata-server
+      # TC cluster name
+      cluster: default
+      username: nacos
+      password: nacos
+#  server:
+#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
+  security:
+    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
+    tokenValidityInMilliseconds: 1800000
+    ignore:
+      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login
+```
+
+**(2)Prepare nacos configuration center configuration**
+
+For more storage mode support, please refer to <a href="https://github.com/apache/incubator-seata/blob/develop/script/config-center/config.txt">More Storage Modes</a>.
+
+> You need to create a new configuration in nacos, where the dataId is seataServer.properties
+
+
+```properties
+store.mode=db
+#-----db-----
+store.db.datasource=druid
+store.db.dbType=mysql
+# Need to adjust driverClassName according to mysql version
+# Driver corresponding to mysql8 and above versions is: com.mysql.cj.jdbc.Driver
+# Driver for versions below mysql8 is: com.mysql.jdbc.Driver
+store.db.driverClassName=com.mysql.cj.jdbc.Driver
+store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
+store.db.user= "username"
+store.db.password= "password"
+# Number of initial database connections
+store.db.minConn=1
+# Maximum number of database connections
+store.db.maxConn=20
+# Maximum wait time when getting connection. The default value is 5000 milliseconds.
+store.db.maxWait=5000
+# Global transaction table name. The default value is global_table.
+store.db.globalTable=global_table
+# Branch transaction table name. The default value is branch_table.
+store.db.branchTable=branch_table
+# Global lock table name. The default value is lock_table.
+store.db.lockTable=lock_table
+# Maximum number of global transactions queried at one time. The default value is 100.
+store.db.queryLimit=100
+
+
+# Undo retention days. The default value is 7 days, log_status=1 (Appendix 3) and undo that is not cleaned up properly
+server.undo.logSaveDays=7
+# Undo cleanup thread interval time. The default value is 86400000 milliseconds.
+server.undo.logDeletePeriod=86400000
+# Two-stage commit retry timeout. The units are ms, s, m, h, d, corresponding to milliseconds, seconds, minutes, hours, days, default milliseconds. The default value of -1 means unlimited retries.
+# Formula: timeout>=now-globalTransactionBeginTime, if it's true means that the timeout will not be retried.
+# Note: After the timeout period is reached, no retries will be made. So there is a risk of data inconsistency, unless the business can calibrate the data by itself, otherwise use with caution.
+server.maxCommitRetryTimeout=-1
+# Two-phase rollback retry timeout
+server.maxRollbackRetryTimeout=-1
+# Two-phase commit incomplete state Global transaction retry commit thread interval time. The default value is 1000 milliseconds.
+server.recovery.committingRetryPeriod=1000
+# Two-phase asynchronous commit status retry submission thread interval time. The default value is 1000 milliseconds.
+server.recovery.asynCommittingRetryPeriod=1000
+# Two-stage rollback state retry rollback thread interval time. The default value is 1000 milliseconds.
+server.recovery.rollbackingRetryPeriod=1000
+# Timeout Status Detection Retry Thread Interval. The default value is 1000 milliseconds, and if timeout is detected, then it puts the global transaction into the rollback session manager.
+server.recovery.timeoutRetryPeriod=1000
+```
+
+
+**(3)Prepare file: docker-compose.yaml**
+```yaml
+version: "3.1"
+services:
+  seata-server:
+    image: apache/seata-server:2.1.0
+    ports:
+      - "7091:7091"
+      - "8091:8091"
+    environment:
+      - STORE_MODE=db
+      # Register the seata server with SEATA_IP as the host
+      - SEATA_IP=seata_ip
+      - SEATA_PORT=8091
+    volumes:
+      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime" # Set the system time zone
+      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"  # Set the time zone
+      # Suppose we copy the resource file to the relative path `./seata-server/resources` via the `docker cp` command
+      # If you have questions, please read [Precautions] and [Using Custom Configuration Files] above
+      - "./seata-server/resources:/seata-server/resources"
+```
+
+### <a id="ha-nacos-db">High Available Usage Deployment</a>
+
+> Seata high availability usage deployment relies on the registration center and database, but does not depend on the configuration center. <br/>
+> Ensure that multiple Seata Servers use the same registry and the same storage center to form a highly available deployment.<br/>
+> The db mode needs to create the corresponding table structure in the database,  please refer to <a href="https://github.com/apache/incubator-seata/tree/develop/script/server/db">[table creation script]</a>.<br/>
+
+
+
+**(1)application.yml**
+
+
+> The configuration of `application.yml` can refer to [application.example.yml](https://github.com/apache/incubator-seata/blob/develop/server/src/main/resources/application.example.yml)
+
+For more storage mode support, please refer to <a href="https://github.com/apache/incubator-seata/blob/develop/script/config-center/config.txt">More Storage Modes</a>.
+
+```yaml
+server:
+  port: 7091
+
+spring:
+  application:
+    name: seata-server
+
+logging:
+  config: classpath:logback-spring.xml
+  file:
+    path: ${user.home}/logs/seata
+  extend:
+    logstash-appender:
+      destination: 127.0.0.1:4560
+    kafka-appender:
+      bootstrap-servers: 127.0.0.1:9092
+      topic: logback_to_logstash
+
+console:
+  user:
+    username: seata
+    password: seata
+
+seata:
+  config:
+    # support: nacos, consul, apollo, zk, etcd3
+    type: nacos
+    nacos:
+      server-addr: nacos_ip:nacos_port
+      namespace: seata-server
+      group: SEATA_GROUP
+      usernam: nacos
+      password: nacos
+      data-id: seataServer.properties
+
+  registry:
+    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
+    type: nacos
+    nacos:
+      application: seata-server
+      server-addr: nacos_ip:nacos_port
+      group: SEATA_GROUP
+      namespace: seata-server
+      # TC cluster name
+      cluster: default
+      username: nacos
+      password: nacos
+    #  store:
+    # support: file 、 db 、 redis
+  #    mode: file
+  #  server:
+  #    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
+  security:
+    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
+    tokenValidityInMilliseconds: 1800000
+    ignore:
+      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login
+```
+
+**(2)Prepare nacos configuration center configuration**
+
+For more storage mode support, please refer to <a href="https://github.com/apache/incubator-seata/blob/develop/script/config-center/config.txt">More Storage Modes</a>.
+
+> You need to create a new configuration in nacos, where the dataId is seataServer.properties
+
+```properties
+store.mode=db
+#-----db-----
+store.db.datasource=druid
+store.db.dbType=mysql
+# Need to adjust driverClassName according to mysql version
+# Driver corresponding to mysql8 and above versions is: com.mysql.cj.jdbc.Driver
+# Driver for versions below mysql8 is: com.mysql.jdbc.Driver
+store.db.driverClassName=com.mysql.cj.jdbc.Driver
+store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
+store.db.user= "username"
+store.db.password= "password"
+# Number of initial database connections
+store.db.minConn=1
+# Maximum number of database connections
+store.db.maxConn=20
+# Maximum wait time when getting connection. The default value is 5000 milliseconds.
+store.db.maxWait=5000
+# Global transaction table name. The default value is global_table.
+store.db.globalTable=global_table
+# Branch transaction table name. The default value is branch_table.
+store.db.branchTable=branch_table
+# Global lock table name. The default value is lock_table.
+store.db.lockTable=lock_table
+# Maximum number of global transactions queried at one time. The default value is 100.
+store.db.queryLimit=100
+
+# Undo retention days. The default value is 7 days, log_status=1 (Appendix 3) and undo that is not cleaned up properly
+server.undo.logSaveDays=7
+# Undo cleanup thread interval time. The default value is 86400000 milliseconds.
+server.undo.logDeletePeriod=86400000
+# Two-stage commit retry timeout. The units are ms, s, m, h, d, corresponding to milliseconds, seconds, minutes, hours, days, default milliseconds. The default value of -1 means unlimited retries.
+# Formula: timeout>=now-globalTransactionBeginTime, if it's true means that the timeout will not be retried.
+# Note: After the timeout period is reached, no retries will be made. So there is a risk of data inconsistency, unless the business can calibrate the data by itself, otherwise use with caution.
+server.maxCommitRetryTimeout=-1
+# Two-phase rollback retry timeout
+server.maxRollbackRetryTimeout=-1
+# Two-phase commit incomplete state Global transaction retry commit thread interval time. The default value is 1000 milliseconds.
+server.recovery.committingRetryPeriod=1000
+# Two-phase asynchronous commit status retry submission thread interval time. The default value is 1000 milliseconds.
+server.recovery.asynCommittingRetryPeriod=1000
+# Two-stage rollback state retry rollback thread interval time. The default value is 1000 milliseconds.
+server.recovery.rollbackingRetryPeriod=1000
+# Timeout Status Detection Retry Thread Interval. The default value is 1000 milliseconds, and if timeout is detected, then it puts the global transaction into the rollback session manager.
+server.recovery.timeoutRetryPeriod=1000
+```
+
+**(3)Prepare file: docker-compose.yaml**
+
+> As long as the configuration is consistent, the seata service can be deployed on multiple instances on one machine or on multiple different hosts at the same time to achieve high service availability. <br />
+> [High Availability Usage Deployment](/docs/ops/deploy-ha)
+
+```yaml
+version: "3.1"
+services:
+  seata-server-1:
+    image: apache/seata-server:${latest-release-version}
+    ports:
+      - "7091:7091"
+      - "8091:8091"
+    environment:
+      - STORE_MODE=db
+      # Register the seata server with SEATA_IP as the host
+      - SEATA_IP=seata_ip
+      - SEATA_PORT=8091
+    volumes:
+      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime" # Set the system time zone
+      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"  # Set the time zone
+      # Suppose we copy the resource file to the relative path `./seata-server/resources` via the `docker cp` command
+      # If you have questions, please read [Precautions] and [Using Custom Configuration Files] above
+      - "./seata-server/resources:/seata-server/resources"
+
+  seata-server-2:
+    image: apache/seata-server:${latest-release-version}
+    ports:
+      - "7092:7091"
+      - "8092:8092"
+    environment:
+      - STORE_MODE=db
+      # Register the seata server with SEATA_IP as the host
+      - SEATA_IP=seata_ip
+      - SEATA_PORT=8091
+    volumes:
+      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime" # Set the system time zone
+      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"  # Set the time zone
+      # Suppose we copy the resource file to the relative path `./seata-server/resources` via the `docker cp` command
+      # If you have questions, please read [Precautions] and [Using Custom Configuration Files] above
+      - "./seata-server/resources:/seata-server/resources"
+
+  # seata Service 3......seata Service N
+```
+
+
+## Environment variables
+
+seata-server supports the following environment variables:
+
+- **SEATA_IP**
+
+> Optional. It specifies the IP started by seata-server. This IP is used when registering with the registration center, such as eureka, etc.
+
+- **SEATA_PORT**
+
+> Optional. It is used to specify the port where seata-server starts. The default port is `8091`.
+
+- **STORE_MODE**
+
+> Optional. It is used to specify the transaction log storage method of seata-server, supports `db`, `file`, `redis` (supported by Seata-Server 1.3 and above). The default value is `file`.
+
+- **SERVER_NODE**
+
+> Optional. It is used to specify the seata-server node ID, such as `1`,`2`,`3`... The default value is `generated based on ip`.
+
+- **SEATA_ENV**
+
+> Optional. It is used to specify the seata-server operating environment, such as `dev`, `test`, etc. When the service is started, configurations such as `registry-dev.conf` will be used.
+
+- **SEATA_CONFIG_NAME**
+
+> Optional. It is used to specify the configuration file location, such as `file:/root/registry`, which will load `/root/registry.conf` as the configuration file. If you need to specify the `file.conf` file at the same time, you need to change the value of `config.file.name` in `registry.conf` to something like `file:/root/file.conf`.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker.md
new file mode 100644
index 00000000000..3917cb880e9
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-docker.md
@@ -0,0 +1,115 @@
+---
+hidden: true
+title: Deploy Seata Server By Docker
+keywords: [docker]
+description: Deploy Seata Server By Docker
+author: helloworlde
+date: 2019-11-25
+---
+
+# Deploy Seata Server By Docker
+
+## Quick Start
+
+#### Start a seata-server instance
+
+```bash
+$ docker run --name seata-server -p 8091:8091 apache/seata-server:2.1.0
+```
+
+#### Specify server IP and port
+
+```bash
+$ docker run --name seata-server \
+        -p 8091:8091 \
+        -e SEATA_IP=192.168.1.1 \
+        -e SEATA_PORT=8091 \
+        apache/seata-server
+```
+
+#### Docker compose
+
+Example of `docker-compose.yaml`
+
+```yaml
+version: "3"
+services:
+  seata-server:
+    image: apache/seata-server
+    hostname: seata-server
+    ports:
+      - "8091:8091"
+    environment:
+      - SEATA_PORT=8091
+      - STORE_MODE=file
+```
+
+## Access container and view log
+
+```bash
+$ docker exec -it seata-server sh
+```
+
+```bash
+$ docker logs -f seata-server
+```
+
+## Using custom configuration file
+
+Custom configuration implement by mount `registry.conf` and `file.conf` to container.
+
+- Specify registry.conf
+
+The environment variable`SEATA_CONFIG_NAME` is required when use a custom configuration , and the value must be started with `file:` like `file:/root/seata-config/registry`:
+
+```bash
+$ docker run --name seata-server \
+        -p 8091:8091 \
+        -e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
+        -v /User/seata/config:/root/seata-config  \
+        apache/seata-server
+```
+
+The param `-e` specify environment, and the param `-v` specify mount volume.
+
+- Specify file.conf
+
+If you need specify `file.conf`, just modify `config` like below in `registry.conf` file:
+
+```
+config {
+  type = "file"
+
+  file {
+    name = "file:/root/seata-config/file.conf"
+  }
+}
+```
+
+## Environment Variables
+
+You can modify configuration of seata-server  by the environment variables like this:
+
+- **SEATA_IP**
+
+> The variable is optional,  specifies registry IP instead of the container IP in registry center like eureka or others.
+
+- **SEATA_PORT**
+
+> The variable is optional, specifies seata-server port, default is `8091`
+
+- **STORE_MODE**
+
+> The variable is optional, specifies the log store mode of seata-server,  support `db` and `file`, default is `file`.
+
+- **SERVER_NODE**
+
+> The variable is optional, specifies  the seata-server node ID, like `1`,`2`,`3`..., default is `1`
+
+- **SEATA_ENV**
+
+> The variable is optional, specifies the seata-server environment, like `dev`, `test` etc. Then server will find file like `registry-dev.conf` under the configuration path when start.
+
+- **SEATA_CONFIG_NAME**
+
+> The variable is optional, specifies the configuration file path, like the `file:/root/registry`, will load file`/root/registry.conf` as configuration. If need specify `file.conf` configuration,the `config.file.name` value in `registry.conf` file need to change as related config, like `file:/root/file.conf`
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-helm.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-helm.md
new file mode 100644
index 00000000000..d01a8226597
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-helm.md
@@ -0,0 +1,55 @@
+---
+hidden: true
+title: Deploy Seata Server By Helm
+keywords: [kubernetes,helm,ops]
+description: Deploy Seata Server By Helm
+author: helloworlde
+date: 2019-12-01
+---
+
+# Deploy Seata Server By Helm
+
+### Quick start
+
+```bash
+$ cd ./script/server/helm/seata-server
+$ helm install seata-server ./seata-server
+```
+
+## Custom configuration
+
+### Environment
+
+The environment is same with Docker, can reference [Deploy Seata Server By Docker](./deploy-by-docker)
+
+### Use specify configuration file
+
+Can specify configuration file by mount files, like mount files under `/root/workspace/seata/seata-config/file` to pod. And need specify environment `SEATA_CONFIG_NAME` also, the value need start with `file:`, like `file:/root/seata-config/registry`
+
+- Values.yaml
+
+```yaml
+replicaCount: 1
+
+namespace: default
+
+image:
+  repository: apache/seata-server
+  tag: latest
+  pullPolicy: IfNotPresent
+
+service:
+  type: NodePort
+  port: 30091
+
+env:
+  seataPort: "8091"
+  storeMode: "file"
+  seataIp: "127.0.0.1"
+  seataConfigName: "file:/root/seata-config/registry"
+
+volume:
+  - name: seata-config
+    mountPath: /root/seata-config
+    hostPath: /root/workspace/seata/seata-config/file
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-kubernetes.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-kubernetes.md
new file mode 100644
index 00000000000..825e85e31e9
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-by-kubernetes.md
@@ -0,0 +1,178 @@
+---
+hidden: true
+title: Deploy with Kubernetes
+keywords: [kubernetes,ops]
+description: Deploy Seata Server using Kubernetes
+author: helloworlde
+date: 2019-12-01
+---
+
+# Deploy Seata Server with Kubernetes
+
+### Quick Start
+
+Create `seata-server.yaml`
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: seata-server
+  namespace: default
+  labels:
+    k8s-app: seata-server
+spec:
+  type: NodePort
+  ports:
+    - port: 8091
+      nodePort: 30091
+      protocol: TCP
+      name: http
+  selector:
+    k8s-app: seata-server
+
+---
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: seata-server
+  namespace: default
+  labels:
+    k8s-app: seata-server
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      k8s-app: seata-server
+  template:
+    metadata:
+      labels:
+        k8s-app: seata-server
+    spec:
+      containers:
+        - name: seata-server
+          image: docker.io/seataio/seata-server:latest
+          imagePullPolicy: IfNotPresent
+          env:
+            - name: SEATA_PORT
+              value: "8091"
+            - name: STORE_MODE
+              value: file
+          ports:
+            - name: http
+              containerPort: 8091
+              protocol: TCP
+```
+
+
+
+```bash
+$ kubectl apply -f seata-server.yaml
+```
+
+
+
+## Custom Configuration
+
+### Environment Variables
+
+The supported environment variables are the same as Docker. You can refer to [Deploy Seata Server with Docker](./deploy-by-docker)
+
+
+
+### Using Custom Configuration Files
+
+
+- Deployment
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: seata-server
+  namespace: default
+  labels:
+    k8s-app: seata-server
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      k8s-app: seata-server
+  template:
+    metadata:
+      labels:
+        k8s-app: seata-server
+    spec:
+      containers:
+        - name: seata-server
+          image: docker.io/apache/seata-server:latest
+          imagePullPolicy: IfNotPresent
+          ports:
+            - name: service
+              containerPort: 8091
+              protocol: TCP
+            - name: console
+              containerPort: 7091
+              protocol: TCP
+          resources:
+            limits:
+              cpu: '2'
+              memory: 4Gi
+            requests:
+              cpu: '1'
+              memory: 2Gi
+          volumeMounts:
+            - name: seata-config
+              mountPath: /seata-server/resources/application.yml
+              subPath: application.yml
+      volumes:
+        - name: seata-config
+          configMap:
+            name: seata-server-config
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: seata-server-config
+data:
+  application.yml: |
+    server:
+      port: 7091
+    
+    spring:
+      application:
+        name: seata-server
+    
+    logging:
+      config: classpath:logback-spring.xml
+      file:
+        path: ${log.home:${user.home}/logs/seata}
+    
+    seata:
+      config:
+        # support: nacos, consul, apollo, zk, etcd3
+        type: nacos
+        nacos:
+          server-addr: 127.0.0.1:8848
+          group: SEATA_GROUP
+          username: xxx
+          password: xxx
+          ##if use MSE Nacos with auth, mutex with username/password attribute
+          #access-key: ""
+          #secret-key: ""
+          data-id: seataServer.properties
+      registry:
+        # support: nacos, eureka, redis, zk, consul, etcd3, sofa
+        type: nacos
+        nacos:
+          application: seata-server
+          server-addr: 127.0.0.1:8848
+          group: SEATA_GROUP
+          cluster: default
+          username: xxx
+          password: xxx
+          ##if use MSE Nacos with auth, mutex with username/password attribute
+          #access-key: ""
+          #secret-key: ""
+
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-guide-beginner.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-guide-beginner.md
new file mode 100644
index 00000000000..29a118cd31b
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-guide-beginner.md
@@ -0,0 +1,260 @@
+---
+title: Beginner Deployment Guide
+keywords: [Seata]
+description: Seata has three roles TC, TM and RM. TC (Server side) is deployed as a separate server, while TM and RM (Client side) are integrated by the business system.
+---
+
+# Deployment Guide
+## Seata Beginner Deployment Guide
+Seata has three roles: TC, TM and RM. TC (Server side) is deployed as a separate server, while TM and RM (Client side) are integrated by the business system.
+
+### Resource Directory Introduction
+#### <a href="https://github.com/apache/incubator-seata/tree/master/script" target="_blank">Click to view</a>. You can also select the corresponding resource directory according to the version branch.
+
+-client
+> Store client-side sql script (including undo_log table) and parameter configuration.
+-config-center
+> Each configuration center parameter import script, config.txt (including server and client, formerly known as nacos-config.txt) is a genernal parameter file.
+- server
+> Store server-side database script (including lock_table, branch_table and global_table) and container configuration.
+
+
+### Precautions
+- seata-spring-boot-starter
+```
+It has the built-in GlobalTransactionScanner automatic initialization function. If initialization is implemented externally, please refer to SeataAutoConfiguration to ensure that the dependencies loads orderly.
+Data source automatic proxy is turned on by default, and it can be turned off by configuring seata.enable-auto-data-source-proxy: false.
+```
+- spring-cloud-starter-alibaba-seata
+> <a href="https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E" target ="_blank">View release notes</a>. <br/>
+> 2.1.0 embeds seata-all 0.7.1, 2.1.1 embeds seata-all 0.9.0, 2.2.0 embeds seata-spring-boot-starter 1.0.0, 2.2.1 embeds seata-spring- boot-starter 1.1.0
+```
+    Solutions for 2.1.0 and 2.1.1 compatible starter:
+In the @SpringBootApplication annotation, exclude com.alibaba.cloud.seata.GlobalTransactionAutoConfiguration in spring-cloud-starter-alibaba-seata
+```
+
+- Recommendations for spring-cloud-starter-alibaba-seata dependency configuration
+
+```java
+            <dependency>
+                 <groupId>org.apache.seata</groupId>
+                 <artifactId>seata-spring-boot-starter</artifactId>
+             </dependency>
+             <dependency>
+                 <groupId>com.alibaba.cloud</groupId>
+                 <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+                 <exclusions>
+                     <exclusion>
+                         <groupId>org.apache.seata</groupId>
+                         <artifactId>seata-spring-boot-starter</artifactId>
+                     </exclusion>
+                 </exclusions>
+             </dependency>
+```
+
+
+
+### Start Server
+
+There are currently three server-side storage modes (store.mode): file, db, redis, raft. The file mode does not need to be changed and can be started directly. The following specifically explains the db and redis startup steps.
+
+Note: The file mode is a stand-alone mode. The global transaction session information is read and written in the memory and the local file root.data is persisted. So the performance is quite well;
+
+The db mode is a high-availability mode. Global transaction session information is shared through db, but the corresponding performance is poor;
+
+The redis mode is supported by Seata-Server 1.3 and above. It has high performance and risks losing transaction information. Please configure the redis persistence configuration suitable for the current scenario in advance.
+
+#### Step 1: Startup package
+- <a href="https://github.com/apache/incubator-seata/releases" target="_blank">Click to download</a>.
+- Official DingTalk group (Group Number: 23171167, 1st group is already full, including 5,000 people, <a href="/community" target="_blank">2nd group</a>, group 3: 32033786,group 4: 60170003910), QQ group (Group Number: 254657148, group 2: 216012363). Please download packages in the group sharing file.1
+
+#### Step 2: Create table (db only)
+Global transaction session information consists of three pieces of content, that is global transaction-->branch transaction-->global lock, corresponding to the tables global_table, branch_table, and lock_table.
+
+#### Step 3: Modify store.mode
+
+Startup package: seata-->conf-->application.yml, modify store.mode="db" or "redis"
+Source code: root directory-->seata-server-->resources-->application.yml, modify store.mode="db" or "redis"
+
+#### Step 4: Modify database connection|redis attribute configuration
+
+Startup package: seata-->conf-->application.example.yml comes with additional configuration, copy its db|redis related configuration to application.yml, and modify store.db or store.redis related properties.
+Source code: Root directory-->seata-server-->resources-->application.example.yml comes with additional configuration, copy its db|redis related configuration to application.yml, and modify store.db or store.redis related Attributes.
+
+#### Step 5: Start
+
+- Source code startup: execute the main method in ServerApplication.java
+- Command to start: seata-server.sh -h 127.0.0.1 -p 8091 -m db
+
+```
+    -h: IP registered to the registration center
+    -p: Server rpc listening port
+    -m: Global transaction session information storage mode, file, db, redis. Read startup parameters first (Seata-Server 1.3 and above supports redis)
+    -n: Server node. When there are multiple servers, each node needs to be distinguished to generate transactionIds in different intervals to avoid conflicts.
+    -e: Multi-environment configuration please refers to https://seata.apache.org/docs/ops/multi-configuration-isolation/.
+```
+
+- <a href="/docs/ops/deploy-by-docker" target="_blank">Click to view docker deployment</a>
+
+Note: It is recommended to allocate 2G of heap memory and 1G of off-heap memory.
+
+### Business system integration Client
+#### Step 1: Add seata dependency (single choice recommended)
+- Depends on seata-all.
+- Depends on seata-spring-boot-starter, supporting yml and properties configuration (.conf can be deleted), and relies on seata-all internally.
+- Depends on spring-cloud-alibaba-seata, integrates seata internally, and implements xid transfer.
+
+#### Step 2: Create undo_log table and configure parameters (AT mode only)
+- <a href="/docs/user/configurations" target="_blank">View parameter configuration introduction</a>.
+
+#### Step 3: Data source proxy (coexistence of automatic and manual configuration is not supported)
+
+1. If using seata-all
+    - Starting from version 0.9.0, seata supports automatic proxy data sources.
+        ```
+        1.1.0: seata-all cancels the attribute configuration and switches it to the annotation @EnableAutoDataSourceProxy, and you can choose jdk proxy or cglib proxy
+        1.0.0: client.support.spring.datasource.autoproxy=true
+        0.9.0: support.spring.datasource.autoproxy=true
+        ```
+        If XA mode is used, `@EnableAutoDataSourceProxy(dataSourceProxyMode = "XA")`
+
+    - For manual configuration, please refer to the example below
+        ```
+        @Primary
+        @Bean("dataSource")
+        public DataSource dataSource(DataSource druidDataSource) {
+            //AT agent (choose one of the two)
+            return new DataSourceProxy(druidDataSource);
+            //XA proxy
+            return new DataSourceProxyXA(druidDataSource)
+        }
+        ```
+
+2. If using seata-starter
+    - When using automatic proxy data sources, you need to adjust the configuration file if you use XA mode
+        application.properties
+        ```
+        seata.data-source-proxy-mode=XA
+        ```
+        application.yml
+        ```
+        seata:
+          data-source-proxy-mode: XA
+        ```
+    - How to turn off the data source automatic proxy of seata-spring-boot-starter?
+         application.properties
+         ```
+         seata.enable-auto-data-source-proxy=false
+         ```
+         application.yml
+         ```
+         seata:
+           enable-auto-data-source-proxy: false
+         ```
+
+#### Step 4: Initialize GlobalTransactionScanner
+- Manual
+``` @Bean
+        @Bean
+        public GlobalTransactionScanner globalTransactionScanner() {
+            String applicationName = this.applicationContext.getEnvironment().getProperty("spring.application.name");
+            String txServiceGroup = this.seataProperties.getTxServiceGroup();
+            if (StringUtils.isEmpty(txServiceGroup)) {
+                txServiceGroup = applicationName + "-fescar-service-group";
+                this.seataProperties.setTxServiceGroup(txServiceGroup);
+            }
+
+            return new GlobalTransactionScanner(applicationName, txServiceGroup);
+        }
+```
+- Automatic <br/>
+You can introduce seata-spring-boot-starter, spring-cloud-starter-alibaba-seata and other jars
+
+#### Step 5: Implement xid cross-service transfer
+- Manual <br/>
+Refer to the various rpc implementation modules under the source code integration folder.
+- Automatic <br/>
+SpringCloud users can introduce spring-cloud-starter-alibaba-seata, and xid transfer has been implemented internally.
+
+## Business use
+
+### Annotation interception
+
+#### Global affairs
+
+```java
+@GetMapping(value = "testCommit")
+@GlobalTransactional
+public Object testCommit(@RequestParam(name = "id",defaultValue = "1") Integer id,
+    @RequestParam(name = "sum", defaultValue = "1") Integer sum) {
+    Boolean ok = productService.reduceStock(id, sum);
+    if (ok) {
+        LocalDateTime now = LocalDateTime.now();
+        Orders orders = new Orders();
+        orders.setCreateTime(now);
+        orders.setProductId(id);
+        orders.setReplaceTime(now);
+        orders.setSum(sum);
+        orderService.save(orders);
+        return "ok";
+    } else {
+        return "fail";
+    }
+}
+```
+
+#### TCC
+
+```java
+/**
+ * Define two-phase commit: name = bean name of the tcc (globally unique), commitMethod = commit (the two-phase confirmation method) and rollbackMethod = rollback (the two-phase cancellation method)
+ * useTCCFence=true (enable anti-hanging)
+ * BusinessActionContextParameter annotation passes parameters to the second stage
+ *
+ * @param params - input parameters
+ * @return String
+ */
+@TwoPhaseBusinessAction(name = "beanName", commitMethod = "commit", rollbackMethod = "rollback", useTCCFence = true)
+public void insert(@BusinessActionContextParameter(paramName = "params") Map<String, String> params) {
+    logger.info("此处可以预留资源,或者利用tcc的特点,与AT混用,二阶段时利用一阶段在此处存放的消息,通过二阶段发出,比如redis,mq等操作");
+}
+
+
+/**
+ * The confirmation method can be named differently, but it must be consistent with commitMethod. The context can pass the parameters of the try method.
+ *
+ * @param context context
+ * @return boolean
+ */
+public void commit(BusinessActionContext context) {
+    logger.info("预留资源真正处理,或者发出mq消息和redis入库");
+}
+
+/**
+ * Two-stage cancellation method
+ *
+ * @param context context
+ * @return boolean
+ */
+public void rollback(BusinessActionContext context) {
+    logger.info("预留资源释放,或清除一阶段准备让二阶段提交时发出的消息缓存");
+}
+```
+
+### Pointcut expression
+
+#### Global affairs
+
+```java
+    @Bean
+    public AspectTransactionalInterceptor aspectTransactionalInterceptor () {
+        return new AspectTransactionalInterceptor();
+    }
+
+    @Bean
+    public Advisor txAdviceAdvisor(AspectTransactionalInterceptor aspectTransactionalInterceptor ) {
+        AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
+        pointcut.setExpression("Configure pointcut expression to enable global transaction interceptor");
+        return new DefaultPointcutAdvisor(pointcut, aspectTransactionalInterceptor);
+    }
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-ha.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-ha.md
new file mode 100644
index 00000000000..e404276b679
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-ha.md
@@ -0,0 +1,149 @@
+---
+hidden: true
+title: High Available Usage Deployment
+keywords: [kubernetes,ops]
+description: High Available Usage Deployment
+author: helloworlde
+date: 2020-04-10
+---
+
+# High Available Usage Deployment
+
+> High available usage deployment of Seata depends on registry center, configuration center and database.
+
+## Seata-Server
+
+The Seata-Server need registry center, and save transaction data into database, for example, use Nacos
+
+- Modify configuration in `registry.conf`
+
+```
+registry {
+  type = "nacos"
+
+  nacos {
+    application = "seata-server"
+    serverAddr = "192.168.199.2"
+    namespace = ""
+    cluster = "default"
+    username = ""
+    password = ""
+  }
+}
+
+config {
+  type = "nacos"
+
+  nacos {
+    serverAddr = "192.168.199.2"
+    namespace = ""
+    group = "SEATA_GROUP"
+    username = ""
+    password = ""
+  }
+}
+```
+
+-  Modify configuration in configuration center
+
+```
+service.vgroupMapping.my_test_tx_group=default
+store.mode=db
+store.db.datasource=druid
+store.db.dbType=mysql
+store.db.driverClassName=com.mysql.jdbc.Driver
+store.db.url=jdbc:mysql://192.168.199.2:30060/seata?useUnicode=true
+store.db.user=root
+store.db.password=123456
+```
+
+- Create table `global_table`, `branch_table`, `lock_table` in database
+
+Please reference script on [/script/server/db/](https://github.com/apache/incubator-seata/tree/develop/script/server/db)
+
+Now, startup multiple seata-server, and then the server is support high available usage.
+
+----
+
+For example, using Kubernetes deploy, the configuration file like:
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: seata-ha-server
+  namespace: default
+  labels:
+    app.kubernetes.io/name: seata-ha-server
+spec:
+  type: ClusterIP
+  ports:
+    - port: 8091
+      protocol: TCP
+      name: http
+  selector:
+    app.kubernetes.io/name: seata-ha-server
+
+---
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: seata-ha-server
+  namespace: default
+  labels:
+    app.kubernetes.io/name: seata-ha-server
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: seata-ha-server
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/name: seata-ha-server
+    spec:
+      containers:
+        - name: seata-ha-server
+          image: apache/seata-server:2.1.0
+          imagePullPolicy: IfNotPresent
+          env:
+            - name: SEATA_CONFIG_NAME
+              value: file:/root/seata-config/registry
+          ports:
+            - name: http
+              containerPort: 8091
+              protocol: TCP
+          volumeMounts:
+            - name: seata-config
+              mountPath: /root/seata-config
+      volumes:
+        - name: seata-config
+          configMap:
+            name: seata-ha-server-config
+
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: seata-ha-server-config
+data:
+  registry.conf: |
+    registry {
+        type = "nacos"
+        nacos {
+          application = "seata-server"
+          serverAddr = "192.168.199.2"
+        }
+    }
+    config {
+      type = "nacos"
+      nacos {
+        serverAddr = "192.168.199.2"
+        group = "SEATA_GROUP"
+      }
+    }
+```
+
+You can reference [seata-ha-deploy-practice](/blog/seata-ha-practice) for more detail about practice of HA deploy.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-server-raft.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-server-raft.md
new file mode 100644
index 00000000000..0d0c81f6ad3
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-server-raft.md
@@ -0,0 +1,84 @@
+---
+title: Deploying Raft Cluster
+keywords: [Seata]
+description: Server-Raft mode deploy
+---
+
+# Deploying Server-Raft
+Seata-Raft mode is a transaction storage mode that integrates storage and computing, with high performance, easy scalability, low entry barriers, and low operational costs. For more detailed information about the architecture and usage, please click here.
+
+Note: Since this mode does not support integration with third-party registry centers, only one TC cluster is allowed for the entire chain, which means that the TC cluster corresponding to the client's transaction group must remain consistent. In the future, the Seata community will launch a self-contained NamingServer that is compatible with the Seata-Raft mode and supports multi-raft.
+
+## Server
+1. Download the server application from [RELEASE](https://github.com/apache/incubator-seata/releases) and unzip. 
+
+2. Change config
+Add the following parameters under seata: in the application.yml file in the conf.
+```
+seata:
+  server:
+    raft:
+      group: default #This value represents the group of the Raft cluster, and the value corresponding to the client's transaction branch must correspond to it
+      server-addr: 192.168.0.111:9091,192.168.0.112:9091,192.168.0.113:9091 # The IP address and port of the 3 nodes, the port is the netty port of the node + 1000, and the default netty port is 8091
+      snapshot-interval: 600 # Take a snapshot of the data every 600 seconds to ensure fast rolling of the Raft log. However, if there is too much transaction data in memory during each snapshot, it may cause fluctuations in business response time (rt) every 600 seconds. Adjusting the snapshot interval to 30 minutes or 1 hour is also acceptable, depending on the specific business requirements. It is recommended to conduct performance testing to determine if there are any rt fluctuations. [...]
+      apply-batch: 32 # Commit the Raft log with a maximum batch of 32 actions at a time.
+      max-append-bufferSize: 262144 #The maximum size of the log storage buffer is 256 KB by default.
+      max-replicator-inflight-msgs: 256 #在When using pipeline requests, the maximum number of in-flight requests is 256 by default.
+      disruptor-buffer-size: 16384 #The size of the internal disruptor buffer is 16384 by default. If the write throughput is high, you may need to increase this value appropriately.
+      election-timeout-ms: 1000 #The duration after which a leader without heartbeat triggers a new election.
+      reporter-enabled: false # raft monitor enable
+      reporter-initial-delay: 60 # The interval between monitoring intervals.
+      serialization: jackson # Serialization method, do not modify.
+      compressor: none # The compression method used for the Raft log, such as gzip, zstd, lz4,etc
+      sync: true # The flushing method for Raft logs is synchronous flushing by default.
+  config:
+    # support: nacos, consul, apollo, zk, etcd3
+    type: file # This configuration can select different configuration centers.
+  registry:
+    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
+    type: file # In Raft mode, it is not allowed to use non-file-based registry centers.
+  store:
+    # support: file 、 db 、 redis 、 raft
+    mode: raft # use raft mode
+    file:
+      dir: sessionStore # This path is the storage location for Raft logs and transaction-related logs. By default, it is a relative path, but it is recommended to set a fixed location.
+```
+If the addresses in server-addr: are all on the local machine, then you need to add an offset of 1000 to the Netty port for different servers on this machine. For example, if `server.port: 7092`, the Netty port would be `8092`, and the Raft election and communication port would be `9092`. You need to add the startup parameter `-Dserver.raftPort=9092`.
+On Linux, you can specify the export `JAVA_OPT="-Dserver.raftPort=9092"` command to set the desired value.。
+
+3. Startup
+
+On Linux/Mac
+
+```bash
+$ sh ./bin/seata-server.sh
+```
+
+On Windows
+
+```cmd
+bin\seata-server.bat
+```
+
+4. Volume expansion and contraction
+
+Assuming the original cluster list is "192.168.0.111:7091, 192.168.0.112:7091, 192.168.0.113:7091", whether it is scaling or shrinking, only need to modify this string and submit it to the volume expansion and contraction interface of a member, such as scaling "curl -X POST -i http://192.168.0.111:7091/metadata/v1/changeCluster?raftClusterStr=192.168.0.111: 7091, 192.168.0.112:7091, 192.168.0.113:7091, 192.168.0.114:7091" ', if it is scaling, only need to remove the nodes in the cluster  [...]
+Note: The seata.server.raft.server-addr configuration is invalid as long as the cluster is built. Please perform volume expansion and contraction through the API. The subsequent console will also integrate volume expansion and contraction and cluster management functions.
+
+## Client
+
+1. Change `registry.type`
+```
+   registry:
+      type: raft
+      raft:
+         server-addr: 192.168.0.111:7091, 192.168.0.112:7091, 192.168.0.113:7091
+```
+2. Change the TC cluster corresponding to the transaction group to the Raft group of the server.
+```
+seata:
+   tx-service-group: default_tx_group
+   service:
+      vgroup-mapping:
+         default_tx_group: If server.raft.group is set to "default", then this field should be set to "default" as well.
+```
\ No newline at end of file
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-server.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-server.md
new file mode 100644
index 00000000000..15abbd472e1
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/deploy-server.md
@@ -0,0 +1,53 @@
+---
+title: Deploy Server
+keywords: [Seata]
+description: The server can deploy by multiple metho - Directly, Docker, Docker-Compose, Kubernetes, Helm.
+---
+
+# Deploy Server
+
+The server can deploy by multiple method: Directly, Docker, Docker-Compose, Kubernetes, Helm.
+
+## Directly 
+
+1. Download the server application from [RELEASE](https://github.com/apache/incubator-seata/releases) and unzip. 
+
+2. Startup
+
+On Linux/Mac
+
+```bash
+$ sh ./bin/seata-server.sh
+```
+
+On Windows
+
+```cmd
+bin\seata-server.bat
+```
+
+### Arguments
+
+|Argument|Fullname|Effect|Comment|
+|:--|:--|:--|:--|
+|-h|--host|Specify IP in registry center|Suggest to specify Virtural machine or cloud server, or will use internal IP|
+|-p|--port|Specify startup port |default is 8091|
+|-m|--storeMode|The way to save transaction log | Support `file` and `db`default is  `file`|
+|-n|--serverNode|Specify the seata-server node ID |Like `1`,`2`,`3`..., default is `1`|
+|-e|--seataEnv|Specify the environment of  seata-server |Like `dev`, `test` etc. Then will use file like `registry-dev.conf` as configuraiton|
+
+For example:
+
+```bash
+$ sh ./bin/seata-server.sh -p 8091 -h 127.0.0.1 -m file
+```
+
+## Deploy in container
+
+Now support these method:
+
+- [Deploy Seata Server By Docker](./deploy-by-docker)
+
+- [Deploy Seata Server By Kubernetes](./deploy-by-kubernetes)
+
+- [Deploy Seata Server By Helm](./deploy-by-helm)
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/multi-configuration-isolation.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/multi-configuration-isolation.md
new file mode 100644
index 00000000000..8fc2d47d379
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/multi-configuration-isolation.md
@@ -0,0 +1,64 @@
+---
+title: Multi-configuration Isolation
+keywords: [Seata]
+description: Seata supports Multi-configuration Isolation since 0.6.1,You can configure it in the following steps.
+---
+
+# Multi-configuration Isolation
+
+Seata supports Multi-configuration Isolation since 0.6.1,You can configure it in the following steps.
+
+## use case 
+
+Suppose we now have a test environment in which we want to read only the configuration items corresponding to the test environment.
+
+### 1.Environment Configuration 
+
+Seata provides two ways to set up different environments:
+
+- **-e test**,where test is the name of the environment.(**This can be only used for server side**)
+```shell
+
+e.g.(Linux)
+
+sh seata-server.sh -e test
+```
+- Use **SEATA_ENV** as the key of environment variable,and it's value will be the name of the environment.(**This can be only used for client side**)[**recommended**]
+```shell
+
+e.g.(Linux)
+
+#vi /etc/profile 
+
+export SEATA_ENV=test
+
+:wq
+
+#source /etc/profile
+```
+- Use **seataEnv** as the key of jvm options,and it's value will be the name of the environment.(**This can be only used for client side**)[**recommended**]
+```
+-DseataEnv=test
+```
+### 2.Name the new configuration file
+
+- Copy and rename file.conf to file-env.conf,where env is the name of the environment. e.g. **file-test.conf**
+- Copy and rename registry.conf to registry-env.conf,where env is the name of the environment. e.g. **registry-test.conf**
+- In the registry-test.conf file, modify as follows:
+```shell
+registry {
+...
+file {
+    name = "file-test.conf"
+  }
+
+config {
+...
+file {
+    name = "file-test.conf"
+  }
+
+```
+
+
+After all the steps have been set up, you can start using Seata configuration isolation.
\ No newline at end of file
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/upgrade.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/upgrade.md
new file mode 100644
index 00000000000..e69cdf30335
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/ops/upgrade.md
@@ -0,0 +1,182 @@
+---
+title: Version Upgrade Guide
+keywords: [Seata]
+description: Seata upgrade.
+---
+
+# Version Upgrade Guide
+
+<a href="#10" target="_self">10. What compatibility matters need to be paid attention to when upgrading to seata 2.4? </a>
+<br/>
+
+<a href="#9" target="_self">9. What compatibility matters need to be paid attention to when upgrading to seata 2.1? </a>
+<br/>
+
+<a href="#8" target="_self">8. What compatibility matters need to be paid attention to when upgrading to seata 2.0? </a>
+<br/>
+
+<a href="#7" target="_self">7. What compatibility matters need to be paid attention to when upgrading to seata 1.6.x? </a>
+<br/>
+
+<a href="#6" target="_self">6. What compatibility matters need to be paid attention to when upgrading to seata 1.5.0? </a>
+<br/>
+
+<a href="#5" target="_self">5. What compatibility matters need to be paid attention to when upgrading to seata 1.4.0? </a>
+<br/>
+
+<a href="#4" target="_self">4. What compatibility matters need to be paid attention to when upgrading to seata 1.3.0? </a>
+<br/>
+
+<a href="#3" target="_self">3. What compatibility matters need to be paid attention to when upgrading to seata 1.2.0? </a>
+<br/>
+
+<a href="#2" target="_self">2. What compatibility matters need to be paid attention to when upgrading to seata 1.1.0? </a>
+<br/>
+
+<a href="#1" target="_self">1. How to upgrade versions 0.8 and 0.9 to version 1.0? </a>
+<br/>
+
+------
+
+<h3 id='10'>10. What compatibility matters need to be paid attention to when upgrading to seata 2.4?</h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+
+   1. The server has removed the console. If you need to access the console, please deploy namingserver and register seata-server to the namingserver (seata-server supports registering to multiple registration centers simultaneously).
+   2. Version 2.4.0 temporarily removes username and password for the raft registration center. If the cluster is in raft mode and the version is 2.4.0, configuration is not needed.
+</details>
+
+
+------
+
+<h3 id='9'>9. What compatibility matters need to be paid attention to when upgrading to seata 2.1?</h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+
+  1. After using the Seata 2.0 Raft storage mode, upgrading to 2.1 requires logging in to obtain a token, carrying a token to request /metadata/v1/cluster?group= in the value of seata.server.raft.group in application.yml, and querying the cluster metadata Later. Upgrade the follower node first, and then upgrade the leader node. Note: After this upgrade is completed, the Raft storage mode is not allowed to be downgraded to 2.0. Please fully verify it in the offline environment before upgr [...]
+  2.When users upgrade to Seata 2.1, they need to configure the Seata Raft authentication information. First, on the Seata server side, add /metadata/v1/** to ignore.url to temporarily disable the authentication function. Then, on the Seata client side, configure username, password, and tokenValidityInMilliseconds in seata.registry.raft in application.yaml or registry.conf (note that the username and password on the client side should match those configured on the server side, and the to [...]
+</details>
+
+
+------
+
+<h3 id='8'>8. What compatibility matters need to be paid attention to when upgrading to seata 2.0? </h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+   If you upgrade from 1.8.x to 2.0.x, if you configure the Undolog or communication codec to FST, you need to change the serialization mode to something other than FST on the client before you can upgrade it on the server.
+   Note: In version 2.0.0 of the server, there is a resource reentry issue in AT mode. For example, in a global transaction, if multiple local transactions make repeated data modifications that are not the same, registering multiple branches can lead to abnormal ordering of the two-phase commit. Therefore, if you encounter such scenarios, please refrain from upgrading to version 2.0.0 and consider upgrading to the latest snapshot or a higher version.
+   The annotation @LocalTCC should be modified on the implementation class, and the annotation @TwoPhaseBusinessAction should be modified on the implementation class method prepare.
+</details>
+
+------
+
+<h3 id='7'>7. What compatibility matters need to be paid attention to when upgrading to seata 1.6.x? </h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+   When upgrading from version 1.5.x to version 1.6.x, both client SDK and seata-server are completely smoothly compatible, and no other changes are required other than upgrading the version.
+</details>
+
+------
+
+<h3 id='6'>6. What compatibility matters need to be paid attention to when upgrading to seata 1.5.0? </h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+
+1. When the storage mode of seata-server is db, you need to pay attention to the table structure changes. You need to change the table structure before upgrading to 1.5.0:
+
+  - The table structure character set is uniformly adjusted from utf8 to utf8mb4.
+  - The `global_table` adjustment index is adjusted from `idx_gmt_modified_status` to `idx_status_gmt_modified`.
+  - `lock_table` adds `status` field, and adds `idx_status`, `idx_xid_and_branch_id` index.
+  - Add `distributed_lock` table for seata-server asynchronous task scheduling.
+   Before upgrading to 1.5.0, please pay attention to the table structure changes. For details on the table structure, please [click here](https://github.com/apache/incubator-seata/tree/1.5.0/script/server/db).
+
+2. TCC transaction mode adds anti-hanging function in 1.5.0. If you need to enable anti-hanging by Seata framework, you need to add [this table](https://github.com/apache/incubator-seata/tree/1.5.0/script/client/tcc/db) to the client business library in advance.
+
+3. The first-stage method of TCC mode has been optimized. It is no longer necessary to define `BusinessActionContext` as an interface parameter in the first stage. If `BusinessActionContext` needs to be used in the first stage, it can be obtained through `BusinessActionContextUtil.getContext()`.
+
+4. The internal structure of the redis registration center has been adjusted and is no longer backward compatible. If you use redis as the registration center of seata, please also upgrade both seata-all (seata-spring-boot-starter) and seata-server that the client depends on.
+
+5. The transaction group configuration supports default values. In order to avoid ambiguity and reduce learning costs, the default transaction group is changed from `my_test_tx_group` to `default_tx_group`. It will be backward compatible in version 1.5.X.
+
+</details>
+
+------
+
+<h3 id='5'>5. What compatibility matters need to be paid attention to when upgrading to seata 1.4.0? </h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+
+
+1. The Redis data of version 1.3 and 1.4 are incompatible. Since the Redis mode reconstructs the data storage structure into hash, users who upgrade from 1.3 to 1.4 need to wait for all transactions to run completely before iterating.
+
+
+</details>
+
+------
+
+<h3 id='4'>4. What compatibility matters need to be paid attention to when upgrading to seata 1.3.0? </h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+
+1. The nacos registration center adds a new group attribute configuration `seata.registry.nacos.group`. If it is not configured, the default value is `DEFAULT_GROUP`. The server and client must be consistent.
+2. The mysql `undolog` table removes the `id` field and enhances the timestamp accuracy together with `branch_table` to prevent dirty data from being rolled back due to sequence errors during undolog rollback. (Note: mysql version 5.6 or above is required)
+
+</details>
+
+***********
+
+<h3 id='3'>3. What compatibility matters need to be paid attention to when upgrading to seata 1.2.0? </h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+
+1. The nacos registration center adds a new service attribute configuration `registry.nacos.application` = "seata-server". The original default name is serverAddr, and now the default is seata-server. The Server and Client must be consistent.
+
+
+</details>
+
+***********
+
+<h3 id='2'>2. What compatibility matters need to be paid attention to when upgrading to seata 1.1.0? </h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+
+1. Pay attention to the compatibility of configuration items. Version 1.1.0 has unified the styles of configuration items.
+If the program relies on seata-all, corresponding to the *.conf file, the naming style of the configuration items in the conf file is unified with a dot + camel case combination, [1.1.0 Configuration Item Description](/docs/user/configurations), [1.1.0 Configuration Reference](https://github.com/apache/incubator-seata/tree/1.1.0/script/client/conf);
+If the program depends on seata-spring-boot-starter, corresponding to *.properties or *.yml, the naming style of property and yml files is unified to the combination of dot + underscore.
+[1.1.0 Configuration Reference](https://github.com/apache/incubator-seata/tree/1.1.0/script/client/spring) What needs special attention is the 1.0.0 version configuration item seata.service
+.vgroup-mapping=default 1.1.0 changed to: seata.service.vgroup-mapping
+.my_test_tx_group=default, where my_test_tx_group represents the transaction group used by the program; 1.0.0 version configuration item seata.service.grouplist=127.0.0.1:8091, 1.1.0
+Change to: seata.service.grouplist.default=127.0.0.1:8091 where default represents the seata registration service name.
+
+2. seata-all does not enable automatic proxying of data sources by default. The original conf file configuration items in seata-all
+The client.support.spring.datasource.autoproxy configuration item is invalid and is annotated by @EnableAutoDataSourceProxy
+Instead of annotation, the annotation parameter can choose to use jdk proxy or cglib proxy. When using HikariDataSource, it is recommended to use cglib proxy mode.
+seata-spring-boot-starter enables the data source proxy by default, and the corresponding data source automatic proxy configuration items remain unchanged from version 1.0.0.
+
+3. When using the spring cloud framework, you need to use [Spring Cloud Alibaba](https://github.com/alibaba/spring-cloud-alibaba) for seata
+Transmission of transaction context. So seata has integration dependencies with Spring Cloud Alibaba version, refer to [version notes](https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E)
+spring-cloud-alibaba-seata relied on seata-all before version 2.2.0.RELEASE. If you continue to use a lower version of spring-cloud-alibaba-seata, you can use a higher version of seata-all to replace the built-in seata-all version;
+Spring-cloud-alibaba-seata starts to rely on seata-spring-boot-starter internally starting from 2.2.0.RELEASE (inclusive). 2.2.0.RELEASE internally integrates seata-spring-boot-starter 1.0.0 and can be upgraded to seata-spring-boot-starter 1.1.0, seata-spring-boot-starter integrates seata-all, seata-spring-boot-starter wraps the autoconfig function for properties or yml configuration, in spring-cloud-alibaba-seata Before 2.2.0.RELEASE
+The autoconfig function is supported by itself. Afterwards, the autoconfig about seata itself in spring-cloud-alibaba-seata is removed and is supported by seata-spring-boot-starter. Therefore, the lower version of spring-cloud-alibaba-seata can only be used with seata-all. Use, the higher version spring-cloud-alibaba-seata can only be used with seata-spring-boot-starter, with 2.2.0.RELEASE as the dividing point.
+
+4. When the TC side adopts db storage mode, the precision of gmt_create and gmt_modified fields is added to branch_table to accurately confirm the order of rollback.
+[Reference for each database script](https://github.com/apache/incubator-seata/tree/1.1.0/script/server/db).
+
+</details>
+
+***********
+
+<h3 id='1'>1. How to upgrade versions 0.8 and 0.9 to version 1.0? </h3>
+<details>
+   <summary><mark>Notes</mark></summary>
+
+   1. (Optional) 1.0 supports yml and properties, and seata-all needs to be replaced with seata-spring-boot-starter
+   2. (Required) Add a common index to the branch_id field of the TC side table lock_table
+   3. (Optional) Some parameter naming changes, <a href="/docs/user/configurations100" target="_blank">Click here to check the parameter configuration</a>.
+   4. client.report.success.enable can be set as false to improve performance.
+
+
+</details>
+
+********
+
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/faq.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/faq.md
new file mode 100644
index 00000000000..0e627ee2dfe
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/faq.md
@@ -0,0 +1,532 @@
+---
+title: FAQ
+keywords: [Seata]
+description: Seata FAQ.
+---
+
+# FAQ
+
+<a href="#1" target="_self">1.Can Seata be used in a production environment?</a>
+<br/>
+
+<a href="#2" target="_self">2.Dose Seata support high availability ?</a>
+<br/>
+
+<a href="#3" target="_self">3.What is the use of the record of undo log table log status = 1 ?</a>
+<br/>
+
+<a href="#4" target="_self">4.How to use the Seata framework to ensure transaction isolation?</a>
+<br/>
+
+<a href="#5" target="_self">5.When Failed to roll back dirty data, what shall I do ?</a>
+<br/>
+
+<a href="#6" target="_self">6.Why the global transaction state is not "begin" when a branch transaction is registered ?</a>
+<br/>
+
+<a href="#7" target="_self">7.When Nacos is used as the Seata configuration center, the project startup error report cannot find the service. How to check and deal with it ?</a>
+<br/>
+
+<a href="#8" target="_self">8.When Eureka is the registry and TC is highly available, how to overwrite Eureka properties at the TC end?</a>
+<br/>
+
+<a href="#9" target="_self">9.java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.jsontype.TypeSerializer.typeId(Ljava/lang/Object;Lcom/fasterxml/jackson/core/JsonToken;)?</a>
+<br/>
+
+<a href="#10" target="_self">10. Why didn't my mybatis operation return auto-generated ID? </a>
+<br/>
+
+<a href="#11" target="_self">11.I can't find this package:io.seata.codec.protobuf.generated,and cant't run seata server?</a>
+<br/>
+
+<a href="#12" target="_self">12.How TC uses mysql8?</a>
+<br/>
+
+<a href="#13" target="_self">13.Support multiple primary keys?</a>
+<br/>
+
+<a href="#14" target="_self">14.How to solve the error reported by HikariDataSource?</a>
+<br/>
+
+<a href="#15" target="_self">15.Can I write the configuration directly to application.properties without using the conf type configuration file?</a>
+<br/>
+
+<a href="#16" target="_self">16.How to package seata-server after modifying the source code?</a>
+<br/>
+
+<a href="#17" target="_self">17.What RPC frameworks does seata support now?</a>
+<br/>
+
+<a href="#18" target="_self">18. java.lang.NoSuchMethodError: com.alibaba.druid.sql.ast.statement
+.SQLSelect.getFirstQueueBlockLcom/alibaba/druid/sql/ast/statement/SQLSelectQueryBlock;</a>
+<br/>
+
+<a href="#19" target="_self">19. NoSuchMethodError in apache-dubbo 2.7.0?</a>
+<br/>
+
+<a href="#20" target="_self">20.What are the precautions for using AT mode?</a>
+<br/>
+
+<a href="#21" target="_self">21.Why will the win system have one more empty line for the properties when configured with synchronization script?</a>
+<br/>
+
+<a href="#22" target="_self">22.What to note for the AT mode and Spring @Transactional annotation hyphenation?</a>
+<br/>
+
+<a href="#23" target="_self">23.Spring boot 1.5.x appear the Jackson related NoClassDefFoundException?</a>
+<br/>
+
+<a href="#24" target="_self">24.SpringCloud/HTTP xid cannot transmit?</a>
+<br/>
+
+<a href="#25" target="_self">25.undo_log cannot be deleted after using the mybatis plus dynamic data source component?</a>
+<br/>
+
+<a href="#26" target="_self">26.Could not found global transaction xid = %s, may be has finished.</a>
+<br/>
+
+<a href="#27" target="_self">27.Why does TC reported this error: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception?</a>
+<br/>
+
+<a href="#28" target="_self">28.The database enables automatic update timestamp, which makes dirty data unable to be rolled back?</a>
+<br/>
+
+<a href="#29" target="_self">29.timeoutrollching occurs before the global transaction timeout?</a>
+<br/>
+
+<a href="#30" target="_self">30.What database and table splitting solutions does Seata support at this stage?</a>
+<br/>
+
+<a href="#31" target="_self">31.What are the restrictions on Seata's address registered with the registry?</a>
+<br/>
+
+<a href="#32" target="_self">32.seata-server cannot be started due to Unrecognized VM option 'CMSParallelRemarkEnabled'
+Error: Could not create the Java Virtual Machine.
+Error: A fatal exception has occurred. Program will exit.?</a>
+<br/>
+
+<a href="#33" target="_self">33. Why does the java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer error occur when the client's JDK version is 1.8 when compiling and running ? </a>
+<br/>
+
+<a href="#34" target="_self">34. Why does the error "pk contains illegal character!" occur? </a>
+<br/>
+
+---
+
+<h3 id='1'>Q: 1.Can Seata be used in a production environment?</h3>
+
+**A:**
+Since version 0.4.2,it is supported in production environment,Users who are using seata are welcome to complete this issue together:[who's using Seata](https://github.com/apache/incubator-seata/issues/1246)
+
+---
+
+<h3 id='2'>Q: 2.Dose Seata support high availability ?</h3>
+
+**A:**
+supported from version 0.6, tc USES db mode to share global transaction session information, and the registry USES non-file seata-supported third-party registries
+
+---
+
+<h3 id='3'>Q: 3.What is the use of the record of undo log table log status = 1 ?</h3>
+
+**A:**
+
+**Scenario:** after A branch transaction A registers TC, A global transaction rollback occurs before A local transaction commits
+
+**Consequence:** global transaction rollback succeeds, a resource is occupied, resulting in resource suspension problem
+
+**Anti-suspension measures:** when a rolls back and finds that the rollback undo has not been inserted, an undo record with log_status=1 is inserted. When a local transaction (business write operation SQL and corresponding undo are a local transaction) is committed, it fails due to the unique key conflict of the undo table.
+
+---
+
+<h3 id='4'>Q: 4.How to use the Seata framework to ensure transaction isolation?</h3>
+
+**A:**
+Since seata phase 1 local transactions have been committed, enhanced isolation is needed to prevent other transactions from dirty reads and dirty writes.
+
+1. Dirty read Select statement with for update, proxy method with @GlobalLock+@Transactional or @GlobalTransaction
+2. Dirty write You must use @GlobalTransactional
+
+   note:If the interface of the business you are querying does not use the @GlobalTransactional annotation, which means there is no need for distributed transactions on the method, you can annotate the @globallock+@Transactional annotation on the method and add a for update statement to the query.
+   If your query interface has the @GlobalTransactional annotation on the outer edge of the transactional link, you can simply add a for update statement to your query. The reason for designing this annotation is that before it is available, distributed transactions need to query the committed data, but the business does not need distributed transactions.
+   Using the @GlobalTransactional annotation adds some unnecessary additional RPC overhead such as begin returning xid, commit transaction, etc. GlobalLock simplifies the RPC process for higher performance.
+
+---
+
+<h3 id='5'>Q: 5.When Failed to roll back dirty data, what shall I do ?</h3>
+
+**A:**
+
+1. The dirty data needs to be processed manually, and the data can be corrected according to the log prompt, or the corresponding undo can be deleted (the FailureHandler can be customized for email notification or other purposes).
+2. This option is not recommended when "undo" mirror validation is turned off during rollback.
+
+   node:It is recommended to isolate the dirty data in advance
+
+---
+
+<h3 id='6'>Q: 6.Why the global transaction state is not "begin" when a branch transaction is registered ?</h3>
+
+**A:**
+
+**abnormal:** Could not register branch into global session xid = status = Rollbacked(Two phase state and Rollbacking, AsyncCommitting, etc) while expecting Begin
+
+**describe:** When a branch transaction is registered, the global transaction status must be a one-phase state "begin", and registration other than "begin" is not allowed. It belongs to the normal processing at the seata framework level, and users can solve it from their own business level.
+
+This exception can occur in the following situations (you can continue to add).
+
+1. The branch transaction is asynchronous. The global transaction is not aware of its progress. The global transaction has entered phase 2 before the asynchronous branch comes to register.
+2. Service a rpc service b timed out (dubbo, feign, etc. timeout by default for 1 second), a throws an exception to tm, tm informs tc to roll back, but b still receives the request (network delay or rpc framework retry), and then registers at tc Global transaction was found to be rolling back.
+3. Tc is aware of the global transaction timeout (@GlobalTransactional (timeoutMills = default 60 seconds)), actively changes the state and notifies each branch transaction to rollback when a new branch transaction is registered.
+
+---
+
+<h3 id='7'>Q: 7.When Nacos is used as the Seata configuration center, the project startup error report cannot find the service. How to check and deal with it ?</h3>
+
+**A:**
+abnormal:io.seata.common.exception.FrameworkException: can not register RM,err:can not connect to services-server.
+
+1. Check the nacos configuration list to see if the seata configuration has been imported successfully.
+2. Check the list of nacos services to see if serverAddr has been registered successfully.
+3. Check the namespace, registry.nacos.namespace and config.nacos.namespace in the client's registry.conf and enter the nacos namespace ID. The default is "". The server and client correspond to the namespace.
+   It is public and is a reserved control of nacos. If you need to create your own namespace, it is better not to use the same name as public, and use a name that has specific semantics in an actual business scenario.
+4. For the list of services on nacos, the IP address corresponding to serverAddr address should be the IP address specified for seata startup, such as: sh seata-server.sh-p 8091-h 122.51.204.197-m file.
+5. Check to see if the seata/conf/nacos-config.txt, transaction group service.vgroupMapping.trade_group=default
+
+   configuration is the same as the project group configuration name.
+
+6. Telnet IP port view ports are open as well as firewall status.
+
+   note:1.Version 080 starts the specified IP problem, the exception "Exception in thread "main" java.lang.RuntimeException: java.net.BindException: Cannot assign request address", please upgrade to version 081 or above.
+   The project USES jdk13 and starts with
+
+```verilog
+   Error: Could not create the Java Virtual Machine
+   Error: A fatal exception has occurred. Program will exit.
+```
+
+ If the environment is sh, replace the last paragraph in the script:
+
+```shell
+        exec "$JAVACMD" $JAVA_OPTS -server -Xmx2048m -Xms2048m -Xmn1024m -Xss512k -XX:SurvivorRatio=10 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:
+MaxDirectMemorySize=1024m -XX:-OmitStackTraceInFastThrow -XX:-UseAdaptiveSizePolicy -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="$BASEDIR"/logs
+/java_heapdump.hprof -XX:+DisableExplicitGC -XX:+CMSParallelRemarkEnabled -XX:+
+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -verbose:gc -Dio.netty.leakDetectionLevel=advanced \
+          -classpath "$CLASSPATH" \
+          -Dapp.name="seata-server" \
+          -Dapp.pid="$$" \
+          -Dapp.repo="$REPO" \
+          -Dapp.home="$BASEDIR" \
+          -Dbasedir="$BASEDIR" \
+          io.seata.server.Server \
+          "$@"
+```
+
+---
+
+<h3 id='8'>Q: 8.When Eureka is the registry and TC is highly available, how to overwrite Eureka properties at the TC end?</h3>
+
+**A:**
+Add the eureka-client.properties file in the seata\conf directory and add the Eureka properties to be overwritten.
+For example, to overwrite eureka.instance.lease-renewal-interval-in-seconds and eureka.instance.lease-expiration-duration-in-seconds, add the following:
+
+```java
+eureka.lease.renewalInterval=1
+eureka.lease.duration=2
+```
+
+The attribute prefix is eureka, and the subsequent attribute names can refer to the class com.netflix.appinfo.PropertyBasedInstanceConfigConstants. You can also study the seata-discovery-eureka project of the discovery module in the seata source code.
+
+---
+
+<h3 id='9'>Q: 9.What's the reason of java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.jsontype.TypeSerializer.typeId(Ljava/lang/Object;Lcom/fasterxml/jackson/core/JsonToken;) ?</h3>
+
+**A:**
+when the undolog serialization is configured as Jackson, the Jackson version needs to be 2.9.9+
+
+---
+
+<h3 id='10'>Q: 10. Why didn't my mybatis operation return auto-generated ID? </h3>
+
+**A:**
+plan1.You should update the configuraton of `mybatis`: set annotation `@Options(useGeneratedKeys = true, keyProperty = "id")` or set the value of useGeneratedKeys and keyProperty in `mybatis` xml configuraton
+plan2.Delete the id field of the undo_log table
+
+---
+
+<h3 id='11'>Q: 11.I can't find this package:io.seata.codec.protobuf.generated,and cant't run seata server?</h3>
+
+**A:**
+You can execute this command: `./mvnw clean install -DskipTests=true` (Mac,Linux) or `mvnw.cmd clean install -DskipTests=true`, (Win)[reference issues/2438](https://github.com/apache/incubator-seata/issues/2438),These codes have been removed in version 0.8.1.
+
+---
+
+<h3 id='12'>Q: 12.How TC uses mysql8?</h3>
+
+**A:**
+
+1. Modify the driver configuration `store.db.driver-class-name` of `file.conf`;
+
+2. Delete mysql5 driver and add mysql8 driver under lib directory
+
+   ps: The same is true for Oracle; `1.2.0` supports MySQL driver multi version isolation without adding drivers
+
+---
+
+<h3 id='13'>Q: 13.Support multiple primary keys?</h3>
+
+**A:**
+
+For the time being, only MySQL is supported. For other types of databases, it is recommended to create a column of self incremented ID primary keys first, and change the original composite primary keys to unique keys to avoid the problem.
+
+---
+
+<h3 id='14'>Q: 14.How to solve the error reported by HikariDataSource?</h3>
+
+**A:**
+
+```markdown
+**Error1**:ClassCastException: com.sun.proxy.$Proxy153 cannot be cast to com.zaxxer.hikari.HikariDataSource
+**Reason**:Instance type conversion error during automatic proxy, injected with $Proxy153 instance, not HikariDataSource's own or subclass instance.
+**Solution**: The Seata automatic proxy data source function uses JDK proxy to proxy DataSource. The generated proxy class extends Proxy implements DataSource can be changed by the receiver to DataSource receive implementation.
+1.1.0 will support both JDK proxy and cglib, and cglib will also be able to switch to solve the problem.
+```
+
+---
+
+<h3 id='15'>Q: 15.Can I write the configuration directly to application.properties without using the conf type configuration file?</h3>
+
+**A:**
+
+At present, `seata-all` needs to use conf type `conf` files, and `properties` and `yml` type files will be supported later. At present, you can rely on `seata-spring-boot-starter` in the project, and then write the configuration item to the `application.properties` so that the conf type file is not used.
+
+---
+
+<h3 id='16'>Q: 16.How to package seata-server after modifying the source code?</h3>
+
+**A:**
+
+1. Delete the `bin`,`conf`,and `lib` directories of the `distribution` module.
+2. `./mvnw clean install -DskipTests=true(Mac,Linux)` OR `mvnw.cmd clean install -DskipTests=true(Win) -P release-seata`。
+3. Unzip the corresponding compressed package in the target directory of the `distribution` module.
+4. Packaging commands after seata-1.5 (the latest development branch), `mvn -Prelease-seata -Dmaven.test.skip=true clean install -U`
+5. If you are on macOS platform with ARM architecture, please use: `mvn -Prelease-seata -Dmaven.test.skip=true clean install -U -P arrch64`
+
+---
+
+<h3 id='17'>Q: 17.What RPC frameworks does seata support now?</h3>
+
+**A:**
+
+```html
+Dubbo, Spring Cloud, Motan, gRPC , sofa-RPC , EDAS-HSF and bRPC
+```
+
+---
+
+<h3 id='18'>Q: 18. java.lang.NoSuchMethodError: com.alibaba.druid.sql.ast.statement
+.SQLSelect.getFirstQueueBlockLcom/alibaba/druid/sql/ast/statement/SQLSelectQueryBlock;</h3>
+
+**A:**
+
+The dependent version of `druid` needs to be upgraded to version `1.1.12 +`, and the default dependent version in Seata is `1.1.12` (provided).
+
+---
+
+<h3 id='19'>Q: 19.NoSuchMethodError in apache-dubbo 2.7.0?</h3>
+
+**A:**
+
+When apache-dubbo loads the filter, it will load the filter of Alibaba Dubbo together, and it will be found in `com.alibaba.dubbo.rpc.invoker` in version `2.7.0`(`Result invoke(org.apache.dubbo.rpc.Invocation invocation) throws RpcException;`), Misuse of `org.apache.dubbo.rpc.invocation` to enter parameters (fixed in` 2.7.1`), resulting in `java.lang.NoSuchMethodError: com.alibaba.dubbo.rpc.Invoker.invoke(Lcom/alibaba/dubbo/rpc/Invocation;)Lcom/alibaba/dubbo/rpc/Result;`
+
+So please upgrade `dubbo` to `2.7.1` or above to ensure compatibility. It is `alibaba-dubbo` and can be used safely. `alibaba-dubbo` does not contain `apache-dubbo` packages.
+
+---
+
+<h3 id='20'>Q: 20.What are the precautions for using AT mode?</h3>
+
+**A:**
+
+1. Proxy data sources must be used. There are three forms of proxy data sources:
+
+- When relying on `seata-spring-boot-starter`, the data source is automatically proxied without additional processing.
+- When relying on `seata-all`, use @EnableAutoDatasourceProxy (since 1.1.0) annotation. JDK proxy or cglib proxy can be selected as annotation parameters.
+- When relying on `seata-all`, you can also manually wrap the DataSource with DatasourceProxy.
+
+2. To configure `GlobalTransactionScanner`, you need to configure it manually when using `seata-all`, and no additional processing is required when using `seata-spring-boot-starter`.
+3. The business table must contain a single column primary key. If there is a composite primary key, please refer to question 13.
+4. Each business library must contain undo\_ log table. If it is used in conjunction with the sub-treasury and split-table component, can be sub-treasury but cannot be split-table
+5. Transactions across microservice links need support for the corresponding RPC framework, which is currently supported in seata-all: `Apache Dubbo, Alibaba Dubbo, sofa-RPC, Motan, gRpc, httpClient`, for support from Spring Cloud, please kindly cite `spring-cloud-alibaba-seata`. Other self research framework, asynchronous model, message consumption transaction model please support itself in combination with the API.
+6. The databases currently supported by AT mode are: MySQL, Oracle, PostgreSQL, and TIDB.
+7. When opening distributed transactions with annotations, provider may not annotate transactions if the default service provider side joins transactions on the consumer side.However, provider similarly requires corresponding dependencies and configurations, and only annotations may be omitted.
+8. On opening the distributed transactions with annotations, if transactions are required to roll back, the exception must be thrown to the originator of the transaction, perceived by the @GlobalTransactional annotation of the transaction originator.Provide directly throws exceptions or defines error code to throw exceptions again as judged by consumer.
+
+---
+
+<h3 id='21'>Q: 21.Why will the win system have one more empty line for the properties when configured with synchronization script?</h3>
+
+**A:**
+
+It is currently known why the configuration will have a `\r`, presumably because this file you write in win, so there are permutations to `\r\n`, and then you execute it with git bash (this can be considered Linux) to recognize `\n` permutations, so there is more `\r`
+
+The solution is currently twofold:
+
+1. `sed -i ""s/\r//"" config.txt`
+
+2. `vim` into the text with the command `set fileformat = unix` (the pro test is available)
+
+---
+
+<h3 id='22'>Q: 22.What to note for the AT mode and Spring @Transactional annotation hyphenation?</h3>
+
+**A:**
+
+`@Transactional` can be coupled with `DataSourceTransactionManager` and `JTATransactionManager` to represent local transactions and XA distributed transactions, respectively. Common to everyone is the combination with local affairs.
+
+When combined with local transactions`@Transactial` and `@GlobalTransactional` are hyphenated,`@Transactial` can only be located in the same method hierarchy annotated at `@GlobalTransaction` or within the inner layer of `@GlobalTransaction` annotation methods.
+
+Here the concept of distributed transactions is larger than local transactions, annotating `@Transactional` outside results in a distributed transaction empty submission, a global transaction being submitted when the `@Transactional` corresponding connection submission is declared or the XID of the global transaction is absent.
+
+---
+
+<h3 id='23'>Q: 23.Spring boot 1.5.x appear the Jackson related NoClassDefFoundException?</h3>
+
+**A:**
+
+```
+Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.fasterxml.jackson.databind.ObjectMapper
+```
+
+It is currently found that too low a version of Jackson that was originally introduced in spring boot version 1.5.x, can cause Seata to rely on Jackson to find new features, Seata requires that the Jackson version 2.9.9+, but the use of the Jackson version 2.9.9 + version can cause the Jackson API used in spring boot to not find, and is a problem with forward compatibility in the Jackson itself. Therefore, it is recommended that you switch Seata's serialization to non Jackson serializati [...]
+
+---
+
+<h3 id='24'>Q: 24.SpringCloud/HTTP xid cannot transmit?</h3>
+
+**A:**
+
+1. If it is the springcloud application, make sure you have introduced `spring-cloud-starter-alibaba-seata` as a dependency.
+2. If the xid hasn't been accepted yet, please confirm whether you have implemented the `WebMvcConfigurer`; if you have, please add `org.apache.seata.integration.http.TransactionPropagationInterceptor.SeataHandlerInterceptor` to your interception chain. You can refer to how `org.apache.seata.integration.http.SeataWebMvcConfigurer` is implemented.
+3. If it isn't a SpringCloud application, you can use `org.apache.seata.integration.http.DefaultHttpExecutor#getInstance `to invoke http when necessary, or refer to its implementation and encapsulate the httpclient to transfer xid by yourself.
+
+---
+
+<h3 id='25'>Q: 25.undo_log cannot be deleted after using the mybatis plus dynamic data source component?</h3>
+
+**A:**
+
+The `dynamic-datasource-spring-boot-starter` component will automatically use `DataSourceProxy` to wrap the `DataSource` after opening Seata. Therefore, the following methods are required to maintain compatibility:
+
+1. If you imported `seata-all`, please do not use @EnableAutoDatasourceProxy annotation
+2. If you imported `seata-spring-boot-starter`, please turn off the automatic agent
+
+```yaml
+seata:
+  enable-auto-data-source-proxy: false
+```
+
+---
+
+<h3 id='26'>Q: 26. Could not found global transaction xid = %s, may be has finished.</h3>
+
+**A:**
+
+Examples:
+
+@GlobalTransactional(timeout=60000)
+public void A()\{
+
+ call remoting B();//Remote call B service
+ local DB operation;
+
+}
+
+public void B() \{
+
+}
+
+Possible causes:
+
+1. The overall execution time of service A exceeds 60000ms, causing the global transaction to initiate a global rollback. At this time, method A or B continues to execute DB operation, verify the global transaction status, and find that the global transaction has been rolled back.
+
+2. When service B executes the readTimeout beyond its setting, it returns an exception to a and throws the exception, causing the global transaction to be rolled back. At this time, when service B performs the DB operation, it verifies the global transaction status and finds that the global transaction has been rolled back.
+
+Impact: in this case, the data will be rolled back to the initial state of the data before the execution of method A. from the perspective of data consistency, the data is consistent as a whole.
+
+---
+
+<h3 id='27'>Q: 27. Why does TC reported this error: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception?</h3>
+
+**A:**
+
+This error is caused by the connection established by an abnormal Seata client (such as accessing the Seata server port through HTTP, port scanning of ECS, etc.). This connection does not send registration information and is considered a useless connection. This exception can be ignored.
+
+---
+
+<h3 id='28'>Q: 28. The database enables automatic update timestamp, which makes dirty data unable to be rolled back?</h3>
+
+**A:**
+
+Due to the business submission, after Seata records the current image, the database updates the timestamp again, resulting in the failure of image verification.
+
+**Solution 1:** Turn off automatic timestamp update of the database. The timestamp update of data, such as modification and creation time, is maintained at the code level. For example, MybatisPlus can automatically fill in.
+
+**Solution 2:**UPDATE statement don't put the fields that haven't been updated into the update statement.
+
+---
+
+<h3 id='29'>Q: 29. timeoutrollching occurs before the global transaction timeout?</h3>
+
+**A:**
+
+It is recommended that the time zone of TC database be inconsistent with the time zone of DB database.
+
+---
+
+<h3 id='30'>Q: 30. What database and table splitting solutions does Seata support at this stage?</h3>
+
+**A:**
+
+Only shardingsphere is supported at this stage. With regard to the compatibility of sub-treasury and split-table with Seata, Seata supports a sub database and sub table scheme by requiring the sub-treasury and split-table framework team to provide an integrated compatibility scheme, rather than Seata. At present, Seata is communicating with each sub-treasury and split-table framework team to discuss the integration compatibility scheme.
+
+---
+
+<h3 id='31'>Q: 31. What are the restrictions on Seata's address registered with the registry?</h3>
+
+**A:**
+
+The Seata registry cannot register addresses of 0.0.0.0 or 127.0.0.1. When the address is automatically registered as the above address, you can start the parameter `-h` or the container environment variable `SEATA_IP`. When the and business services are on different networks, the registered address can be specified as `NAT_IP` or `public network IP`, but it is necessary to ensure that the health inspection activities of the registration center are unobstructed.
+
+---
+
+<h3 id='32'>Q: 32. seata-server cannot be started due to Unrecognized VM option 'CMSParallelRemarkEnabled'
+Error: Could not create the Java Virtual Machine.
+Error: A fatal exception has occurred. Program will exit.?</h3>
+
+**A:**
+
+This is due to the use of a higher version of JDK. The higher version of JDK cancels the CMS processor and replaces it with ZGC.
+
+There are two solutions. Choose one of them:
+
+1. Downgrade JDK version
+
+2. Delete the JDK command of CMS in the startup script of Seata
+
+---
+
+<h3 id='33'>Q:33. Why does the java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer error occur when the client's JDK version is 1.8 when compiling and running? </h3>
+
+**A:**
+
+This is because the seata source code was compiled and then the local seata dependency package was overwritten. JDK 11 was used when compiling the seata source code. In JDK 11, the `flip()` method was rewritten, resulting in incompatibility.
+
+Solution:
+
+- Make sure that the JDK version is 1.8 when compiling seata source code to avoid compatibility issues
+- If you have compiled the source code of seata with JDK 11, please delete all packages under the io.seata path in the local maven repository. Then recompile your project and let the project re-pull the seata dependency package of the central warehouse
+
+---
+
+<h3 id='34'>Q: 34. Why does the error "pk contains illegal character!" occur?</h3>
+
+- Check if the primary key contains a comma.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/history.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/history.md
new file mode 100644
index 00000000000..5b124be7b4d
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/history.md
@@ -0,0 +1,13 @@
+---
+title: History
+keywords: [Seata, History]
+description: Seata History.
+---
+
+# Project History
+1. As early as 2007, Alibaba and Ant Group internally developed a distributed transaction middleware to solve the consistency problem of application data in e-commerce, payment, logistics, and other business scenarios. The internal projects were respectively called TXC (Taobao Transaction Constructor)/XTS (eXtended Transaction Service), and were used in almost every transaction payment process of each order.
+2. Since 2013, Alibaba and Ant Group have separately released distributed transaction cloud service products, GTS(Global Transaction Service)/DTX (Distributed Transaction-eXtended), on Alibaba Cloud and Financial Cloud for enterprise customers. They have accumulated a large number of users in various industries.
+3. In January 2019, Alibaba Group officially open-sourced the project, naming it Fescar (Fast & Easy Commit and Rollback). Since its open-source release, it has been warmly welcomed and praised by numerous developers, gaining over 3k stars in just one week and once topping the GitHub Trending list.
+4. In April 2019, the Ant Group Data Middleware Team joined the Fescar community. In order to create a more open and neutral community, Fescar was renamed Seata (Simple Extensible Autonomous Transaction Architecture), and the code repository was migrated from the Alibaba organization to its independent Seata organization.
+5. In December 2019, the Seata open-source project officially released version 1.0.0 GA, marking that the project is ready for production use.
+6. In October 2023, in order to better drive the evolution of technology through the community, Alibaba and Ant Group officially donated Seata to the Apache Foundation. The proposal has been approved by the Apache Foundation's voting resolution, and Seata officially entered the Apache Incubator.
\ No newline at end of file
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/terminology.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/terminology.md
new file mode 100644
index 00000000000..7e2cb155183
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/terminology.md
@@ -0,0 +1,15 @@
+---
+title: Terminology
+keywords: [Seata]
+description: Seata Terminology.
+---
+
+# Seata Terminology
+#### TC - Transaction Coordinator
+ Maintain status of global and branch transactions, drive the global commit or rollback.
+ 
+#### TM - Transaction Manager 
+ Define the scope of global transaction: begin a global transaction, commit or rollback a global transaction.
+ 
+#### RM - Resource Manager 
+ Manage resources that branch transactions working on, talk to TC for registering branch transactions and reporting status of branch transactions, and drive the branch transaction commit or rollback.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/what-is-seata.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/what-is-seata.md
new file mode 100644
index 00000000000..04d568fc089
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/overview/what-is-seata.md
@@ -0,0 +1,259 @@
+---
+title: What Is Seata?
+keywords: [Seata]
+description: Seata is an open source distributed transaction solution dedicated to providing high performance and easy to use distributed transaction services. Seata will provide users with AT, TCC, SAGA, and XA transaction models to create a one-stop distributed solution for users.
+---
+
+# What Is Seata?
+
+Seata is an open source distributed transaction solution dedicated to providing high performance and easy to use distributed transaction services. Seata will provide users with AT, TCC, SAGA, and XA transaction models to create a one-stop distributed solution for users.
+
+# AT Mode
+
+## Prerequisite
+
+- Relational databases that support local ACID transaction.
+- Java applications that access database via JDBC.
+
+## Overall mechanism
+
+Evolution from the two phases commit protocol:
+
+- Phase 1:commit business data and rollback log in the same local transaction, then release local lock and connection resources.
+- Phase 2:
+  - for commit case, do the work asynchronously and quickly.
+  - for rollback case, do compensation, base on the rollback log created in the phase 1.
+
+# Write isolation
+
+- The **global lock** must be acquired before committing the local transaction of phase 1.
+- If the **global lock** is not acquired, the local transaction should not be committed.
+- One transaction will try to acquire the **global lock** many times if it fails to, but there is a timeout, if it's timeout, rollback local transaction and release local lock as well.
+
+For example:
+
+Two transactions tx1 and tx2 are trying to update field m of table a. The original value of m is 1000.
+
+tx1 starts first, begins a local transaction, acquires the local lock, do the update operation: m = 1000 - 100 = 900. tx1 must acquire the **global lock** before committing the local transaction, after that, commit local transaction and release local lock.
+
+next, tx2 begins local transaction, acquires local lock, do the update operation: m = 900 - 100 = 800. Before tx2 can commit local transaction, it must acquire the **global lock**, but the **global lock** may be hold by tx1, so tx2 will do retry. After tx1 does the global commit and releases the **global lock**, tx2 can acquire the **global lock**, then it can commit local transaction and release local lock.
+
+![Write-Isolation: Commit](/img/doc/TB1zaknwVY7gK0jSZKzXXaikpXa-702-521.png)
+
+See the figure above, tx1 does the global commit in phase 2 and release the **global lock**, tx2 acquires the **global lock** and commits local transaction.
+
+![Write-Isolation: Rollback](/img/doc/TB1xW0UwubviK0jSZFNXXaApXXa-718-521.png)
+
+See the figure above, if tx1 wants to do the global rollback, it must acquire local lock to revert the update operation of phase 1.
+
+However, now the local lock is held by tx2 which hopes to acquire the **global lock**, so tx1 fails to rollback, but it would try it many times until it's timeout for tx2 to acquire the **global lock**, then tx2 rollbacks local transaction and releases local lock, after that, tx1 can acquire the local lock, and do the branch rollback successfully.
+
+Because the **global lock** is held by tx1 during the whole process, there isn't no problem of **dirty write**.
+
+# Read isolation
+
+The isolation level of local database is **read committed** or above, so the default isolation level of the global transaction is **read uncommitted**.
+
+If it needs the isolation level of the global transaction is **read committed**, currently, Seata implements it via SELECT FOR UPDATE statement.
+
+![Read Isolation: SELECT FOR UPDATE](/img/doc/TB138wuwYj1gK0jSZFuXXcrHpXa-724-521.png)
+
+The **global lock** is be applied during the execution of SELECT FOR UPDATE statement, if the **global lock** is held by other transactions, the transaction will release local lock retry execute the SELECT FOR UPDATE statement. During the whole process, the query is blocked until the **global lock** is acquired, if the lock is acquired, it means the other global transaction has committed, so the isolation level of global transaction is **read committed**.
+
+For the performance consideration, Seata only does proxy work for SELECT FOR UPDATE. For the general SELECT statement, do nothing.
+
+# Work process
+
+Take an example to illustrate it.
+
+A business table:`product`
+
+| Field | Type         | Key  |
+| ----- | ------------ | ---- |
+| id    | bigint(20)   | PRI  |
+| name  | varchar(100) |      |
+| since | varchar(100) |      |
+
+The sql of branch transaction in AT mode:
+
+```sql
+update product set name = 'GTS' where name = 'TXC';
+```
+## Phase 1
+
+Process:
+
+1. Parse sql:  know the sql type is update operation, table name is product, the where condition is name = 'TXC' and so on.
+2. Query the data before update(Named before image): In order to  locate the data that will be updated, generate a query statement by the where condition above.
+
+```sql
+select id, name, since from product where name = 'TXC';
+```
+
+Got the "before image":
+
+| id   | name | since |
+| ---- | ---- | ----- |
+| 1    | TXC  | 2014  |
+
+3. Execute the update sql: update the record of name equals 'GTS'.
+4. Query the data after update(Named after image): locate the record by the **primary key** of image data before update.
+
+```sql
+select id, name, since from product where id = 1;
+```
+Got the after image:
+
+| id   | name | since |
+| ---- | ---- | ----- |
+| 1    | GTS  | 2014  |
+
+5. Insert a rollback log: build the rollback log with image before and after, as well as SQL statement relelated information, then insert into table `UNDO_LOG` .
+
+```json
+{
+	"branchId": 641789253,
+	"undoItems": [{
+		"afterImage": {
+			"rows": [{
+				"fields": [{
+					"name": "id",
+					"type": 4,
+					"value": 1
+				}, {
+					"name": "name",
+					"type": 12,
+					"value": "GTS"
+				}, {
+					"name": "since",
+					"type": 12,
+					"value": "2014"
+				}]
+			}],
+			"tableName": "product"
+		},
+		"beforeImage": {
+			"rows": [{
+				"fields": [{
+					"name": "id",
+					"type": 4,
+					"value": 1
+				}, {
+					"name": "name",
+					"type": 12,
+					"value": "TXC"
+				}, {
+					"name": "since",
+					"type": 12,
+					"value": "2014"
+				}]
+			}],
+			"tableName": "product"
+		},
+		"sqlType": "UPDATE"
+	}],
+	"xid": "xid:xxx"
+}
+```
+
+6. Before local commit, the transaction submit an application to TC to acquire a **global lock** for the record whose primary key equals 1 in the table product.
+7. Commit local transaction: commit the update of PRODUCT table and the insert of UNDO_LOG table in the same local transaction.
+8. Report the result of step 7 to TC.
+
+## Phase 2 - Rollback case
+
+1. After receive the rollback request from TC, begin a local transaction, execute operation as following.
+2. Retrieve the UNDO LOG by XID and Branch ID.
+3. Validate data: Compare the image data after update in UNDO LOG with current data, if there is difference, it means the data has been changed by operation out of current transaction, it should be handled in different policy, we will describe it detailedly in other document.
+4. Generate rollback SQL statement base on before image in UNDO LOG and related information of the business SQL.
+
+```sql
+update product set name = 'TXC' where id = 1;
+```
+
+5. Commit local transaction, report the result of execution of local transaction(The rollback result of the Branch transaction) to TC.
+
+## Phase 2 - Commit case
+
+1. After receive the commit request from TC, put the request into a work queue, return success to TC immediately.
+2. During the phase of doing the asynchronous work in the queue, the UNDO LOGs are deleted in batch way.
+
+# Appendix
+
+## Undo log table
+
+UNDO_LOG Table:there is a little bit difference on the data type for different databases.
+
+For MySQL example:
+
+| Field         | Type          |
+| ------------- | ------------- |
+| branch_id     | bigint     PK |
+| xid           | varchar(100)  |
+| context       | varchar(128)  |
+| rollback_info | longblob      |
+| log_status    | tinyint       |
+| log_created   | datetime      |
+| log_modified  | datetime      |
+
+```sql
+-- Note that 0.7.0+ adds the field context
+CREATE TABLE `undo_log` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `branch_id` bigint(20) NOT NULL,
+  `xid` varchar(100) NOT NULL,
+  `context` varchar(128) NOT NULL,
+  `rollback_info` longblob NOT NULL,
+  `log_status` int(11) NOT NULL,
+  `log_created` datetime NOT NULL,
+  `log_modified` datetime NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
+```
+
+# TCC Mode
+
+Review the description in the overview: A distributed global transaction, the whole is a **two-phase commit** model. The global transaction is composed of several branch transactions. The branch transaction must meet the requirements of the **two-phase commit** model, that is, each branch transaction must have its own:
+
+- One-stage prepare behavior
+- Two-phase commit or rollback behavior
+
+![Overview of a global transaction](/img/doc/TB14Kguw1H2gK0jSZJnXXaT1FXa-853-482.png)
+
+According to the two-phase behavior mode, we divide branch transactions into **Automatic (Branch) Transaction Mode** and **TCC (Branch) Transaction Mode**.
+
+The AT mode is based on a **relational database** that **supports local ACID transactions**:
+
+- One-stage prepare behavior: In local transactions, business data updates and corresponding rollback log records are submitted together.
+- Two-phase commit behavior: Immediately completed successfully, **automatically** asynchronously clean up the rollback log.
+- Two-phase rollback behavior: Through the rollback log, **automatically** generates compensation operations to complete data rollback.
+
+Correspondingly, the TCC mode does not rely on transaction support of the underlying data resources:
+
+- One-stage prepare behavior: Call the **custom** prepare logic.
+- Two-phase commit behavior: Call **custom** commit logic.
+- Two-phase rollback behavior: Call the **custom** rollback logic.
+
+The so-called TCC mode refers to the support of **customized's** branch transactions into the management of global transactions.
+
+
+# Saga Mode
+
+The Saga model is a long transaction solution provided by SEATA. In the Saga model, each participant in the business process submits a local transaction. When a participant fails, the previous successful participant is compensated. One stage is positive serving and The two-stage compensation services are implemented by business development.
+
+![Saga mode diagram](/img/doc/TB1Y2kuw7T2gK0jSZFkXXcIQFXa-445-444.png)
+
+Theoretical basis: Hector & Kenneth Post a comment Sagas (1987)
+
+## Applicable scene:
+* Long business processes, many business processes
+* Participants include other company or legacy system services and cannot provide the three interfaces required by the TCC model
+
+## Advantage:
+* Commit local transactions in one phase, lock-free, high performance
+* Event-driven architecture, participants can execute asynchronously, high throughput
+* Compensation services are easy to implement
+
+## Disadvantages:
+* Isolation is not guaranteed see [User Documentation](../user/mode/saga.md)
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/release-notes.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/release-notes.md
new file mode 100644
index 00000000000..2b66b2b0d87
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/release-notes.md
@@ -0,0 +1,3526 @@
+---
+title: Release Notes
+keywords: [Seata, Release Notes]
+description: Release Notes
+---
+
+# Downloads
+
+# Seata
+
+> GitHub: https://github.com/apache/incubator-seata
+>
+> Release Notes: https://github.com/apache/incubator-seata/releases
+
+### 2.1.0 (2024-09-05)
+
+[source](https://downloads.apache.org/incubator/seata/2.1.0/apache-seata-2.1.0-incubating-src.tar.gz) |
+[binary](https://dist.apache.org/repos/dist/release/incubator/seata/2.1.0/apache-seata-2.1.0-incubating-bin.tar.gz)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 2.1.0
+
+Seata 2.1.0 Released
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature:
+- [[#6370](https://github.com/seata/seata/pull/6370)] seata saga decouple spring, optimize architecture.
+- [[#6205](https://github.com/apache/incubator-seata/pull/6205)] mock server
+- [[#6169](https://github.com/apache/incubator-seata/pull/6169)] full support for states in the refactored state machine designer
+- [[#6230](https://github.com/apache/incubator-seata/pull/6230)] RocketMQ transaction are supported
+- [[#6326](https://github.com/apache/incubator-seata/pull/6326)] support raft node metadata sync
+- [[#6415](https://github.com/apache/incubator-seata/pull/6415)] support autolayout in seata-statemachine-designer
+
+### bugfix:
+- [[#6090](https://github.com/apache/incubator-seata/pull/6090)] fix the TCC aspect exception handling process, do not wrapping the internal call exceptions
+- [[#6075](https://github.com/apache/incubator-seata/pull/6075)] fix missing table alias for on update column of image SQL
+- [[#6086](https://github.com/apache/incubator-seata/pull/6086)] fix oracle column alias cannot find
+- [[#6085](https://github.com/apache/incubator-seata/pull/6085)] fix jdk9+ compile error
+- [[#6101](https://github.com/apache/incubator-seata/pull/6101)] fix the consumer can't generate tcc proxy in dubbo 3.x version
+- [[#6077](https://github.com/apache/incubator-seata/pull/6077)] fix could not rollback when table with multiple primary
+- [[#6121](https://github.com/apache/incubator-seata/pull/6121)] fix the branch transaction order error when rolling back
+- [[#6182](https://github.com/apache/incubator-seata/pull/6182)] fix guava-32.0.0-jre.jar zip file is empty in ci
+- [[#6196](https://github.com/apache/incubator-seata/pull/6196)] fix asf config file format error
+- [[#6143](https://github.com/apache/incubator-seata/pull/6143)] gracefully shut down the server
+- [[#6204](https://github.com/apache/incubator-seata/pull/6204)] fix the problem that The incorrect configuration needs to be fixed
+- [[#6248](https://github.com/apache/incubator-seata/pull/6248)] fix JDBC resultSet, statement, connection closing order
+- [[#6261](https://github.com/apache/incubator-seata/pull/6261)] AT mode support the URL of a PGSQL cluster
+- [[#6256](https://github.com/apache/incubator-seata/pull/6256)] fix raft-discovery cannot read registry configuration for seata-all sdk
+- [[#6232](https://github.com/apache/incubator-seata/pull/6232)] convert to utf8mb4 if mysql column is json type
+- [[#6278](https://github.com/apache/incubator-seata/pull/6278)] fix ProtocolV1SerializerTest failed
+- [[#6324](https://github.com/apache/incubator-seata/pull/6324)] fix Parse protocol file failed
+- [[#6331](https://github.com/apache/incubator-seata/pull/6331)] fixed the problem that TCC nested transactions cannot add TwoPhaseBusinessAction and GlobalTransactional annotations at the same time
+- [[#6354](https://github.com/apache/incubator-seata/pull/6354)] fix dynamic degradation does not work properly
+- [[#6363](https://github.com/apache/incubator-seata/pull/6363)] fix known problems of docker image
+- [[#6372](https://github.com/apache/incubator-seata/pull/6372)] fix initializing the sql file postgresql.sql index name conflict
+- [[#6380](https://github.com/apache/incubator-seata/pull/6380)] fix sql exception when checking for the existence of the UNDO_LOG table on SQL server
+- [[#6385](https://github.com/apache/incubator-seata/pull/6385)] fix the bug where Role.participant does not execute hooks but clears them.
+- [[#6465](https://github.com/apache/incubator-seata/pull/6465)] fix(6257): fix saga mode replay context lost start in 2.x
+- [[#6469](https://github.com/apache/incubator-seata/pull/6469)] fix Error in insert sql of [lock_table] data table to sqlserver database
+- [[#6496](https://github.com/apache/incubator-seata/pull/6496)] fix XA did not rollback but close when executing a long-running SQL(or deadlock SQL)
+- [[#6493](https://github.com/apache/incubator-seata/pull/6493)] fix SQLServer-related SQL error in seata server when using database of SQLServer
+- [[#6497](https://github.com/apache/incubator-seata/pull/6497)] fix tcc properties class when autoconfigure
+- [[#6554](https://github.com/apache/incubator-seata/pull/6554)] fix unfixed serializer
+- [[#6555](https://github.com/apache/incubator-seata/pull/6555)] businessActionContext is compatible with io seata
+- [[#6553](https://github.com/apache/incubator-seata/pull/6553)] fix saga "cannot matching status"
+- [[#6575](https://github.com/apache/incubator-seata/pull/6575)] fix io.seata ActionInterceptorHandler use org.apache.seata BusinessActionContextParameter
+
+
+### optimize:
+- [[#6031](https://github.com/apache/incubator-seata/pull/6031)] add a check for the existence of the undolog table
+- [[#6089](https://github.com/apache/incubator-seata/pull/6089)] modify the semantics of RaftServerFactory and remove unnecessary singleton
+- [[#4473](https://github.com/apache/incubator-seata/pull/4473)] rm appdata size limit
+- [[#6071](https://github.com/apache/incubator-seata/pull/6071)] add git infos to jars
+- [[#6042](https://github.com/apache/incubator-seata/pull/6042)] add secure authentication to interfaces in ClusterController
+- [[#6091](https://github.com/apache/incubator-seata/pull/6091)] Optimizing the method of obtaining the tc address during raft authentication
+- [[#6098](https://github.com/apache/incubator-seata/pull/6098)] optimize the retry logic in the acquireMetadata method
+- [[#6034](https://github.com/apache/incubator-seata/pull/6034)] using namespace from command line when deployment with helm charts
+- [[#6116](https://github.com/apache/incubator-seata/pull/6034)] remove lgtm.com stuff
+- [[#6148](https://github.com/apache/incubator-seata/pull/6148)] support Nacos ram role authentication
+- [[#6145](https://github.com/apache/incubator-seata/pull/6145)] upgrade jettison to 1.5.4
+- [[#6164](https://github.com/apache/incubator-seata/pull/6164)] redis registry push empty protection optimize
+- [[#6174](https://github.com/apache/incubator-seata/pull/6174)] add ASF basic config
+- [[#6181](https://github.com/apache/incubator-seata/pull/6181)] update contributing doc
+- [[#6179](https://github.com/apache/incubator-seata/pull/6179)] remove @author info
+- [[#6176](https://github.com/apache/incubator-seata/pull/6176)] update source header
+- [[#6178](https://github.com/apache/incubator-seata/pull/6178)] update the header of Apache License
+- [[#6186](https://github.com/apache/incubator-seata/pull/6186)] update README.md(update mailing list and repository urls)
+- [[#6184](https://github.com/apache/incubator-seata/pull/6184)] update NOTICE file
+- [[#6192](https://github.com/apache/incubator-seata/pull/6192)] remove the useless file
+- [[#6194](https://github.com/apache/incubator-seata/pull/6194)] fix asf.yaml parse error
+- [[#5399](https://github.com/apache/incubator-seata/pull/5399)] optimizing branch register resource only at RM server end
+- [[#6154](https://github.com/apache/incubator-seata/pull/6154)] console log optimize for "kubectl logs -f"
+- [[#6116](https://github.com/apache/incubator-seata/pull/6116)] rewrite NettyPoolKey's hashcode and equals to fix duplicate construction of channel object pools
+- [[#6195](https://github.com/apache/incubator-seata/pull/6195)] update the url in change log to apache/incubator-seata
+- [[#6200](https://github.com/apache/incubator-seata/pull/6200)] cancel required_status_checks
+- [[#6201](https://github.com/apache/incubator-seata/pull/6201)] restore required_status_checks kept to remove context validation
+- [[#6218](https://github.com/apache/incubator-seata/pull/6218)] remove Seata-Docker link
+- [[#6227](https://github.com/apache/incubator-seata/pull/6227)] validate that the primary key is free of illegal characters
+- [[#6004](https://github.com/apache/incubator-seata/pull/6004)] optimize RM TM startup connect server fail fast
+- [[#6243](https://github.com/apache/incubator-seata/pull/6243)] optimize links in the console header
+- [[#6238](https://github.com/apache/incubator-seata/pull/6238)] optimize some files
+- [[#6239](https://github.com/apache/incubator-seata/pull/6239)] update security policy, disclaimer and notice
+- [[#6245](https://github.com/apache/incubator-seata/pull/6245)] in file mode, the configuration in the application takes effect, when the spring configuration in the configuration center is changed
+- [[#6247](https://github.com/apache/incubator-seata/pull/6247)] optimize asf.yml
+- [[#6259](https://github.com/apache/incubator-seata/pull/6259)] modify error message which is global session size more than config
+- [[#6264](https://github.com/apache/incubator-seata/pull/6264)] fix jib-maven-plugin build failed
+- [[#6246](https://github.com/apache/incubator-seata/pull/6246)] build the frontend at the same time as the maven build
+- [[#6268](https://github.com/apache/incubator-seata/pull/6268)] optimize outdate npmjs dependencies in console
+- [[#6271](https://github.com/apache/incubator-seata/pull/6271)] unifty the git information
+- [[#6265](https://github.com/apache/incubator-seata/pull/6265)] optimization fails to build frontend on arm64
+- [[#6267](https://github.com/apache/incubator-seata/pull/6267)] add Server deserialization validation
+- [[#6275](https://github.com/apache/incubator-seata/pull/6275)] optimize the label's format in .asf.yaml
+- [[#6291](https://github.com/apache/incubator-seata/pull/6291)] seata-server is developed in idea and console support output logs
+- [[#6283](https://github.com/apache/incubator-seata/pull/6283)] add a compatible module to support io.seata APIs
+- [[#6294](https://github.com/apache/incubator-seata/pull/6294)] split the frontend resource build process into separate profiles
+- [[#6285](https://github.com/apache/incubator-seata/pull/6285)] optimize time query conditions in the console
+- [[#6297](https://github.com/apache/incubator-seata/pull/6297)] fix problem of `maven-pmd-plugin`
+- [[#6298](https://github.com/apache/incubator-seata/pull/6298)] repackage name to org.apache.seata
+- [[#6302](https://github.com/apache/incubator-seata/pull/6302)] add io.seata package shade
+- [[#6306](https://github.com/apache/incubator-seata/pull/6306)] replace some URL to org/apache/seata
+- [[#6304](https://github.com/apache/incubator-seata/pull/6304)] disable Publish OSSRH workflow
+- [[#6310](https://github.com/apache/incubator-seata/pull/6310)] seata-server compatible io.seata package
+- [[#6301](https://github.com/apache/incubator-seata/pull/6301)] upgrade console frontend dependencies and supported nodejs versions
+- [[#6301](https://github.com/apache/incubator-seata/pull/6312)] add saga related io.seata compatible api
+- [[#6313](https://github.com/apache/incubator-seata/pull/6313)] console display the version number
+- [[#6315](https://github.com/apache/incubator-seata/pull/6315)] compatible with lower versions of SPI
+- [[#6327](https://github.com/apache/incubator-seata/pull/6327)] compatible with integration.http and integration.http.Jakarta
+- [[#6328](https://github.com/apache/incubator-seata/pull/6328)] compatible with integration.grpc
+- [[#6330](https://github.com/apache/incubator-seata/pull/6330)] remove mariadb API
+- [[#6329](https://github.com/apache/incubator-seata/pull/6312)] add saga subcomponent-level io.seata compatible api
+- [[#6254](https://github.com/apache/incubator-seata/pull/6254)] optimize Hessian Serialize
+- [[#6332](https://github.com/apache/incubator-seata/pull/6332)] remove mysql dependency from the distribution package
+- [[#6343](https://github.com/apache/incubator-seata/pull/6343)] compatible with tm module and rm-datasource module
+- [[#6357](https://github.com/apache/incubator-seata/pull/6357)] optimize serialization/deserialization of protocol codec
+- [[#6345](https://github.com/apache/incubator-seata/pull/6345)] compatible with tcc module
+- [[#6356](https://github.com/apache/incubator-seata/pull/6356)] remove authentication from the health check page
+- [[#6360](https://github.com/apache/incubator-seata/pull/6360)] optimize 401 issues for some links
+- [[#6366](https://github.com/apache/incubator-seata/pull/6366)] optimized globaltransaction compatibility issues
+- [[#6369](https://github.com/apache/incubator-seata/pull/6369)] optimize arm64 ci
+- [[#6386](https://github.com/apache/incubator-seata/pull/6386)] replace `byte-buddy` to JDK proxy
+  in `ConfigurationCache`
+- [[#6391](https://github.com/apache/incubator-seata/pull/6091)] forbid duplicate registration of TCC resources
+- [[#6393](https://github.com/apache/incubator-seata/pull/6393)] determine the version before sync metadata and add
+  retry mechanism
+- [[#6387](https://github.com/apache/incubator-seata/pull/6387)] optimize tcc use compatible
+- [[#6402](https://github.com/apache/incubator-seata/pull/6402)] optimize rm-datasource use compatible
+- [[#6403](https://github.com/apache/incubator-seata/pull/6403)] optimize config compatible module
+- [[#6419](https://github.com/apache/incubator-seata/pull/6419)] optimize integration-tx-api compatible
+- [[#6427](https://github.com/apache/incubator-seata/pull/6427)] support spi、saga、spring module compatible
+- [[#6442](https://github.com/apache/incubator-seata/pull/6442)] clarify if conditions
+- [[#6487](https://github.com/apache/incubator-seata/pull/6487)] fix typo and package name
+- [[#6442](https://github.com/apache/incubator-seata/pull/6442)] clarify if conditions
+- [[#6405](https://github.com/apache/incubator-seata/pull/6405)] fix kotlin compile failure
+- [[#6412](https://github.com/apache/incubator-seata/pull/6412)] optimize core compatible module
+- [[#6429](https://github.com/apache/incubator-seata/pull/6429)] remove repetitive words
+- [[#6518](https://github.com/apache/incubator-seata/pull/6518)] optimize ConfigurationCache proxy method
+- [[#6458](https://github.com/apache/incubator-seata/pull/6458)] add null value check for MAC address
+- [[#6516](https://github.com/apache/incubator-seata/pull/6516)] optimize code format
+- [[#6529](https://github.com/apache/incubator-seata/pull/6529)] optimize release maven plugin
+- [[#6548](https://github.com/apache/incubator-seata/pull/6548)] upgrade the byte-buddy version to 1.14.15
+- [[#6539](https://github.com/apache/incubator-seata/pull/6539)] add subcomponents license
+- [[#6540](https://github.com/apache/incubator-seata/pull/6540)] exclude com.google.guava:listenablefuture
+- [[#6549](https://github.com/apache/incubator-seata/pull/6549)] macos workflow support arm testing
+- [[#6558](https://github.com/apache/incubator-seata/pull/6558)] remove mysql-connector-java from pom.xml
+- [[#6570](https://github.com/apache/incubator-seata/pull/6570)] add notice file to binary
+- [[#6578](https://github.com/apache/incubator-seata/pull/6578)] registry.conf supplemented raft configuration
+- [[#6576](https://github.com/apache/incubator-seata/pull/6576)] remove oracle datatype parser
+- [[#6583](https://github.com/apache/incubator-seata/pull/6583)] optimize the default compilation to be independent of the Git Env
+- [[#6585](https://github.com/apache/incubator-seata/pull/6585)] optimize compatible module pom.xml
+- [[#6597](https://github.com/apache/incubator-seata/pull/6597)] remove binary from source code
+- [[#6605](https://github.com/apache/incubator-seata/pull/6605)] revised the license and notice
+- [[#6609](https://github.com/apache/incubator-seata/pull/6609)] revised the notice file
+- [[#6610](https://github.com/apache/incubator-seata/pull/6610)] revised the notice file
+
+### security:
+- [[#6069](https://github.com/apache/incubator-seata/pull/6069)] Upgrade Guava dependencies to fix security vulnerabilities
+- [[#6145](https://github.com/apache/incubator-seata/pull/6145)] upgrade jettison to 1.5.4
+- [[#6144](https://github.com/apache/incubator-seata/pull/6144)] upgrade nacos client to 1.4.6
+- [[#6147](https://github.com/apache/incubator-seata/pull/6147)] upgrade kafka-clients to 3.6.1
+- [[#6339](https://github.com/apache/incubator-seata/pull/6339)] upgrade spring mvc and tomcat.embed
+- [[#6340](https://github.com/apache/incubator-seata/pull/6340)] upgrade and tidy some dependencies
+- [[#6350](https://github.com/apache/incubator-seata/pull/6350)] remove enableDegrade properties
+- [[#6349](https://github.com/apache/incubator-seata/pull/6349)] transfer dockerhub repo
+- [[#6362](https://github.com/apache/incubator-seata/pull/6362)] upgrade Spring related dependence
+- [[#6375](https://github.com/apache/incubator-seata/pull/6375)] override console nested dependencies
+
+### test:
+- [[#6081](https://github.com/apache/incubator-seata/pull/6081)] add `test-os.yml` for testing the OS
+- [[#6125](https://github.com/apache/incubator-seata/pull/6125)] unbind xid in TransactionTemplateTest
+- [[#6157](https://github.com/apache/incubator-seata/pull/6157)] increase common module unit test coverage
+- [[#6250](https://github.com/apache/incubator-seata/pull/6250)] increase seata-core module unit test coverage
+- [[#6325](https://github.com/apache/incubator-seata/pull/6325)] fix mockServerTest fail cause using same port with seata-server
+- [[#6430](https://github.com/apache/incubator-seata/pull/6430)] increase common module unit test coverage
+- [[#6456](https://github.com/apache/incubator-seata/pull/6456)] adjust the test cases related to dynamic configuration
+- [[#6466](https://github.com/apache/incubator-seata/pull/6466)] support redis integration testing
+- [[#6484](https://github.com/apache/incubator-seata/pull/6484)] fix FileConfigurationTest and MockServerTest fail
+- [[#6545](https://github.com/apache/incubator-seata/pull/6545)] fix TestConfigCustomSPI compatibility test fail
+- [[#6560](https://github.com/apache/incubator-seata/pull/6560)] fix mock-server test, do not shutdown in Runtime.getRuntime().addShutdownHook
+- [[#6565](https://github.com/apache/incubator-seata/pull/6565)] fix testCompensationStateMachine fail
+
+### refactor:
+- [[#6280](https://github.com/apache/incubator-seata/pull/6280)] refactor Saga designer using diagram-js
+- [[#6269](https://github.com/apache/incubator-seata/pull/6269)] standardize Seata Exception
+- [[#6420](https://github.com/apache/incubator-seata/pull/6420)] refactor Configuration Cache
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+<!-- Please make sure your Github ID is in the list below -->
+- [slievrly](https://github.com/slievrly)
+- [ptyin](https://github.com/ptyin)
+- [laywin](https://github.com/laywin)
+- [imcmai](https://github.com/imcmai)
+- [DroidEye2ONGU](https://github.com/DroidEye2ONGU)
+- [funky-eyes](https://github.com/funky-eyes)
+- [Bughue](https://github.com/Bughue)
+- [wangliang181230](https://github.com/wangliang181230)
+- [ggbocoder](https://github.com/ggbocoder)
+- [leezongjie](https://github.com/leezongjie)
+- [l81893521](https://github.com/l81893521)
+- [baiyangtx](https://github.com/baiyangtx)
+- [lightClouds917](https://github.com/lightClouds917)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [PleaseGiveMeTheCoke](https://github.com/PleaseGiveMeTheCoke)
+- [sunrui1225](https://github.com/sunrui1225)
+- [PeppaO](https://github.com/PeppaO)
+- [AlbumenJ](https://github.com/AlbumenJ)
+- [dreamskyvision](https://github.com/dreamskyvision)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [liuqiufeng](https://github.com/liuqiufeng)
+- [saberyjs](https://github.com/SABERYJS)
+- [gggyd123](https://github.com/gggyd123)
+- [jonasHanhan](https://github.com/jonasHanhan)
+- [Code-breaker1998](https://github.com/Code-breaker1998)
+- [yixia](https://github.com/wt-better)
+- [MikhailNavitski](https://github.com/MikhailNavitski)
+- [deung](https://github.com/deung)
+- [tanyaofei](https://github.com/tanyaofei)
+- [xjlgod](https://github.com/xjlgod)
+- [TakeActionNow2019](https://github.com/TakeActionNow2019)
+- [sunxunle](https://github.com/sunxunle)
+- [bageyang](https://github.com/bageyang)
+- [YeonCheolGit](https://github.com/YeonCheolGit)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 2.0.0 (2023-11-24)
+
+[source](https://github.com/apache/incubator-seata/archive/v2.0.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v2.0.0/seata-server-2.0.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 2.0.0
+
+Seata 2.0.0 Released
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#5165](https://github.com/apache/incubator-seata/pull/5165)] optimize TCC structure, supporting API access. add integration layer module(seata-integration-tx-api) for transaction process definition and proxy enhancement.
+- [[#5352](https://github.com/apache/incubator-seata/pull/5352)] add jackson json parser and gson json parser for tcc business action context
+- [[#5377](https://github.com/apache/incubator-seata/pull/5377)] make AbstractHttpExecutor.class support http put
+- [[#5396](https://github.com/apache/incubator-seata/pull/5396)] TC log appender metric
+- [[#5118](https://github.com/apache/incubator-seata/pull/5118)] support two-stage concurrent notification execution
+- [[#5529](https://github.com/apache/incubator-seata/pull/5529)] docker image supports JVM parameter injection
+- [[#3887](https://github.com/apache/incubator-seata/pull/3887)] add SQL Server database support in AT mode
+- [[#4033](https://github.com/apache/incubator-seata/pull/4033)] add SQLServer support for Server DB storage mode
+- [[#5600](https://github.com/apache/incubator-seata/pull/5600)] feature: support trace the transaction link according to the XID
+- [[#5357](https://github.com/apache/incubator-seata/pull/5357)] feature: console integration saga-statemachine-designer
+- [[#5717](https://github.com/apache/incubator-seata/pull/5717)] compatible with file.conf and registry.conf configurations in version 1.4.2 and below
+- [[#5842](https://github.com/apache/incubator-seata/pull/5842)] adding metainfo to docker image
+- [[#5902](https://github.com/apache/incubator-seata/pull/5902)] support IPv6
+- [[#5907](https://github.com/apache/incubator-seata/pull/5907)] support polardb-x 2.0 in AT mode
+- [[#5932](https://github.com/apache/incubator-seata/pull/5932)] support Dameng database
+- [[#5946](https://github.com/apache/incubator-seata/pull/5946)] add sqlserver's adaptation to the console paging interface
+- [[#5226](https://github.com/apache/incubator-seata/pull/5226)] support raft cluster and store mode
+
+### bugfix
+
+- [[#5677](https://github.com/apache/incubator-seata/pull/5677)] fix saga mode serviceTask inputParams json autoType convert exception
+- [[#5277](https://github.com/apache/incubator-seata/pull/5277)] fix server console has queried the released lock
+- [[#5282](https://github.com/apache/incubator-seata/pull/5282)] parallel request handle throw IndexOutOfBoundsException
+- [[#5294](https://github.com/apache/incubator-seata/pull/5294)] fix auto-increment of pk columns in PostgreSQL/Oracle in AT mode
+- [[#5298](https://github.com/apache/incubator-seata/pull/5298)] don't remove GlobalSession when retry rollback or retry commit timeout
+- [[#5304](https://github.com/apache/incubator-seata/pull/5304)] remove RollbackRetryTimeout sessions during in file storage recover
+- [[#5310](https://github.com/apache/incubator-seata/pull/5310)] fix that keywords don't add escaped characters
+- [[#5318](https://github.com/apache/incubator-seata/pull/5318)] fix G1 jvm parameter in jdk8
+- [[#5330](https://github.com/apache/incubator-seata/pull/5330)] fix bugs found in unit tests
+- [[#5337](https://github.com/apache/incubator-seata/pull/5337)] fix bugs found in feature#5165 about sorting problem of multiple interceptor under the spring used environment, by the way fix the BeforeTransaction(AfterTransaction) transaction ordering problem when the order is consistent
+- [[#5347](https://github.com/apache/incubator-seata/pull/5347)] Fix console print `unauthorized error`
+- [[#5355](https://github.com/apache/incubator-seata/pull/5355)] fix bug when customizing context-path
+- [[#5362](https://github.com/apache/incubator-seata/pull/5362)] fix When the rollback logic on the TC side returns RollbackFailed, the custom FailureHandler is not executed
+- [[#5373](https://github.com/apache/incubator-seata/pull/5373)] fix transaction timeout on client side not execute hook and failureHandler
+- [[#5395](https://github.com/apache/incubator-seata/pull/5395)] check if table meta cache should be refreshed in AT mode
+- [[#5426](https://github.com/apache/incubator-seata/pull/5426)] fix the GlobalTransactional annotation npe issue.
+- [[#5464](https://github.com/apache/incubator-seata/pull/5464)] fix global session is always begin in saga mode
+- [[#5478](https://github.com/apache/incubator-seata/pull/5478)] fix finished transaction swallows exception when committing
+- [[#5490](https://github.com/apache/incubator-seata/pull/5490)] fix method name not print in logs
+- [[#5449](https://github.com/apache/incubator-seata/pull/5449)] fix Oracle XA transaction reentrant issues
+- [[#5462](https://github.com/apache/incubator-seata/pull/5462)] fix if using `@GlobalTransactional` in RM, `ShouldNeverHappenException` will be thrown
+- [[#5498](https://github.com/apache/incubator-seata/pull/5498)] bugfix: fix the full table scan issue with 'setDate' condition in Oracle 10g
+- [[#5531](https://github.com/apache/incubator-seata/pull/5531)] fix the log file path was loaded incorrectly
+- [[#5523](https://github.com/apache/incubator-seata/pull/5523)] fix GlobalStatus=9 can't be cleared in DB storage mode
+- [[#5558](https://github.com/apache/incubator-seata/pull/5558)] fix mariadb rollback failed
+- [[#5556](https://github.com/apache/incubator-seata/pull/5556)] fix oracle insert undolog failed
+- [[#5579](https://github.com/apache/incubator-seata/pull/5579)] fix RM_CHANNELS get npe when resourceId is empty
+- [[#5577](https://github.com/apache/incubator-seata/pull/5577)] fix grpc interceptor xid unbinding problem
+- [[#5594](https://github.com/apache/incubator-seata/pull/5594)] fix log in participant transaction role
+- [[#5604](https://github.com/apache/incubator-seata/pull/5604)] fix the `asyncCommit` and `queueToRetryCommit` always failed in db mode
+- [[#5658](https://github.com/apache/incubator-seata/pull/5658)] bugfix: fix escaped characters for upper and lower case column names
+- [[#5661](https://github.com/apache/incubator-seata/pull/5661)] bugfix: the timeout is null when the connectionProxyXA connection is reused
+- [[#5679](https://github.com/apache/incubator-seata/pull/5679)] bugfix: fix compatibility between xxx.grouplist and grouplist.xxx configuration items
+- [[#5715](https://github.com/apache/incubator-seata/pull/5715)] fix get configuration item contains underlined error
+- [[#5748](https://github.com/apache/incubator-seata/pull/5748)] case of the pk col-name in the business sql is inconsistent with the case in the table metadata, resulting in a rollback failure
+- [[#5745](https://github.com/apache/incubator-seata/pull/5745)] fix the problem that the parameter prefix requirement of the setAttachment method in sofa-rpc is not met
+- [[#5772](https://github.com/apache/incubator-seata/pull/5762)] change some fields type of TableMetaCache to avoid integer overflow
+- [[#5787](https://github.com/apache/incubator-seata/pull/5794)] Solution cluster cannot be customized when redis serves as the registry
+- [[#5810](https://github.com/apache/incubator-seata/pull/5810)] fix XA transaction start exception and rollback failure caused by druid dependency conflict
+- [[#5821](https://github.com/apache/incubator-seata/pull/5821)] fix insert executor keywords unescape
+- [[#5835](https://github.com/apache/incubator-seata/pull/5835)] bugfix: fix TC retry rollback wrongly, after the XA transaction fail and rollback
+- [[#5881](https://github.com/apache/incubator-seata/pull/5880)] fix delete branch table unlock failed
+- [[#5930](https://github.com/apache/incubator-seata/pull/5930)] fix the issue of missing sentinel password in store redis mode
+- [[#5958](https://github.com/apache/incubator-seata/pull/5958)] required to be unlocked when a re-election occurs in a commit state
+- [[#5971](https://github.com/apache/incubator-seata/pull/5971)] fix some configurations that are not deprecated show "Deprecated"
+- [[#5977](https://github.com/apache/incubator-seata/pull/5977)] fix that rpcserver is not closed when raftServer is closed
+- [[#5954](https://github.com/apache/incubator-seata/pull/5954)] fix the issue of saved branch session status does not match the actual branch session status
+- [[#5990](https://github.com/apache/incubator-seata/pull/5990)] fix the issue that the Lua script is not synchronized when the redis sentinel master node is down
+- [[#5997](https://github.com/apache/incubator-seata/pull/5997)] fix global transaction hook repeat execute
+- [[#6018](https://github.com/apache/incubator-seata/pull/6018)] fix incorrect metric report
+- [[#6024](https://github.com/apache/incubator-seata/pull/6024)] fix the white screen after click the "View Global Lock" button on the transaction info page in the console
+- [[#6015](https://github.com/apache/incubator-seata/pull/6015)] fix can't integrate dubbo with spring
+- [[#6049](https://github.com/apache/incubator-seata/pull/6049)] fix registry type for raft under the network interruption did not carry out the sleep 1s
+- [[#6050](https://github.com/apache/incubator-seata/pull/6050)] change RaftServer#destroy to wait all shutdown procedures
+- [[#6033](https://github.com/apache/incubator-seata/pull/6033)] fix the isReference judgment logic in HSFRemotingParser, remove unnecessary judgment about FactoryBean
+
+### optimize
+
+- [[#5966](https://github.com/apache/incubator-seata/pull/5966)] decouple saga expression handling and remove evaluator package
+- [[#5928](https://github.com/apache/incubator-seata/pull/5928)] add Saga statelang semantic validation
+- [[#4858](https://github.com/apache/incubator-seata/pull/4858)] reorganize the usage of task session manager
+- [[#4881](https://github.com/apache/incubator-seata/pull/4881)] reorganize the usage of Sessionmanager and listener
+- [[#5273](https://github.com/apache/incubator-seata/pull/5273)] Optimize the compilation configuration of the `protobuf-maven-plugin` plug-in to solve the problem of too long command lines in higher versions.
+- [[#5278](https://github.com/apache/incubator-seata/pull/5278)] clean multi-sessionmanager-instance pattern
+- [[#5302](https://github.com/apache/incubator-seata/pull/5302)] remove startup script the -Xmn configuration
+- [[#4880](https://github.com/apache/incubator-seata/pull/4880)] optimize logs when commit/rollback catch an exception
+- [[#5322](https://github.com/apache/incubator-seata/pull/5322)] optimize the log of SPI
+- [[#5326](https://github.com/apache/incubator-seata/pull/5326)] add time info for global transaction timeout log
+- [[#5328](https://github.com/apache/incubator-seata/pull/5333)] add corresponding lua implementation for Redis mode of global transaction and transaction storage
+- [[#5341](https://github.com/apache/incubator-seata/pull/5341)] optimize gRPC Interceptor for TCC mode
+- [[#5342](https://github.com/apache/incubator-seata/pull/5342)] optimize the check of the delay value of the TCC fence log clean task
+- [[#5344](https://github.com/apache/incubator-seata/pull/5344)] add store mode,config type and registry type log info
+- [[#5351](https://github.com/apache/incubator-seata/pull/5351)] optimize RPC filter for TCC mode
+- [[#5354](https://github.com/apache/incubator-seata/pull/5354)] reconstruct the RPC integration module
+- [[#5370](https://github.com/apache/incubator-seata/pull/5370)] optimize transaction fail handler
+- [[#5431](https://github.com/apache/incubator-seata/pull/5431)] optimize github workflow
+- [[#5461](https://github.com/apache/incubator-seata/pull/5461)] optimize license workflow
+- [[#5456](https://github.com/apache/incubator-seata/pull/5456)] refactor ColumnUtils and EscapeHandler
+- [[#5438](https://github.com/apache/incubator-seata/pull/5438)] optimize code style properties
+- [[#5471](https://github.com/apache/incubator-seata/pull/5471)] optimize transaction log on client side
+- [[#5485](https://github.com/apache/incubator-seata/pull/5485)] optimize server log output
+- [[#4907](https://github.com/apache/incubator-seata/pull/4907)] optimize thread scheduling and code
+- [[#5487](https://github.com/apache/incubator-seata/pull/5487)] mark the lockholder of branchsession as final
+- [[#5519](https://github.com/apache/incubator-seata/pull/5519)] optimize FenceHandler for oracle
+- [[#5501](https://github.com/apache/incubator-seata/pull/5501)] support updating transaction state with optimistic locking
+- [[#5419](https://github.com/apache/incubator-seata/pull/5419)] optimize images based on java 8/17 and support maven-3.9.0
+- [[#5549](https://github.com/apache/incubator-seata/pull/5549)] update expire gpg key and publish workflow
+- [[#5576](https://github.com/apache/incubator-seata/pull/5576)] The common fence clean task is only initiated when useTCCFence is set to true
+- [[#5623](https://github.com/apache/incubator-seata/pull/5623)] optimize possible conflict between asyncCommitting thread and retryCommitting thread
+- [[#5553](https://github.com/apache/incubator-seata/pull/5553)] support case-sensitive attributes for table and column metadata
+- [[#5563](https://github.com/apache/incubator-seata/pull/5563)] optimize: optimize channel availability thread log output
+- [[#5644](https://github.com/apache/incubator-seata/pull/5644)] optimize server logs print
+- [[#5680](https://github.com/apache/incubator-seata/pull/5680)] optimize escape character for case of columnNames
+- [[#5686](https://github.com/apache/incubator-seata/pull/5686)] optimize: optimize license check actions
+- [[#5714](https://github.com/apache/incubator-seata/pull/5714)] optimize distributed lock log
+- [[#5723](https://github.com/apache/incubator-seata/pull/5723)] optimize docker default timezone
+- [[#5779](https://github.com/apache/incubator-seata/pull/5779)] remove unnecessary log outputs and unify the log output path.
+- [[#5802](https://github.com/apache/incubator-seata/pull/5802)] set server's transaction level to READ_COMMITTED
+- [[#5783](https://github.com/apache/incubator-seata/pull/5783)] support the nacos application name property
+- [[#5524](https://github.com/apache/incubator-seata/pull/5524)] support for more operational commands in seata-server.sh
+- [[#5836](https://github.com/apache/incubator-seata/pull/5836)] separate MySQL from Mariadb implementations
+- [[#5869](https://github.com/apache/incubator-seata/pull/5869)] some minor syntax optimization
+- [[#5885](https://github.com/apache/incubator-seata/pull/5885)] optimize log in ConnectionProxyXA
+- [[#5894](https://github.com/apache/incubator-seata/pull/5894)] remove dependency without license
+- [[#5895](https://github.com/apache/incubator-seata/pull/5895)] remove 7z format compression support
+- [[#5896](https://github.com/apache/incubator-seata/pull/5896)] remove mariadb.jdbc dependency
+- [[#5384](https://github.com/apache/incubator-seata/pull/5384)] unified project version
+- [[#5419](https://github.com/apache/incubator-seata/pull/5419)] publish images based on java 8/17 and support maven-3.9.0
+- [[#5829](https://github.com/apache/incubator-seata/pull/5829)] fix codecov chart not display
+- [[#5878](https://github.com/apache/incubator-seata/pull/5878)] optimize `httpcore` and `httpclient` dependencies
+- [[#5917](https://github.com/apache/incubator-seata/pull/5917)] upgrade native-lib-loader version
+- [[#5926](https://github.com/apache/incubator-seata/pull/5926)] optimize some scripts related to Apollo
+- [[#5938](https://github.com/apache/incubator-seata/pull/5938)] support jmx port in seata
+- [[#5944](https://github.com/apache/incubator-seata/pull/5944)] optimize: fix build action warning
+- [[#5951](https://github.com/apache/incubator-seata/pull/5951)] remove un support config in jdk17
+- [[#5959](https://github.com/apache/incubator-seata/pull/5959)] modify code style and remove unused import
+- [[#6002](https://github.com/apache/incubator-seata/pull/6002)] remove fst serialization
+- [[#6045](https://github.com/apache/incubator-seata/pull/6045)] optimize derivative product check base on mysql
+
+### security
+
+- [[#5642](https://github.com/apache/incubator-seata/pull/5642)] add Hessian Serializer WhiteDenyList
+- [[#5694](https://github.com/apache/incubator-seata/pull/5694)] fix several node.js security vulnerabilities
+- [[#5801](https://github.com/apache/incubator-seata/pull/5801)] fix some dependencies vulnerability
+- [[#5805](https://github.com/apache/incubator-seata/pull/5805)] fix some serializer vulnerabilities
+- [[#5868](https://github.com/apache/incubator-seata/pull/5868)] fix npm package vulnerabilities
+- [[#5916](https://github.com/apache/incubator-seata/pull/5916)] upgrade nodejs dependency
+- [[#5942](https://github.com/apache/incubator-seata/pull/5942)] upgrade dependencies version
+- [[#5987](https://github.com/apache/incubator-seata/pull/5987)] upgrade some dependencies version
+- [[#6013](https://github.com/apache/incubator-seata/pull/6013)] upgrade seata-server spring version
+
+### test
+
+- [[#5308](https://github.com/apache/incubator-seata/pull/5308)] add unit test [FileLoader, ObjectHolder, StringUtils]
+- [[#5309](https://github.com/apache/incubator-seata/pull/5309)] add unit test [ArrayUtils, ConfigTools, MapUtil]
+- [[#5335](https://github.com/apache/incubator-seata/pull/5335)] add unit test [EnhancedServiceLoader,ExtensionDefinition,SizeUtilTest,ReflectionUtil,LowerCaseLinkHashMap,FileLoader,ObjectHolder]
+- [[#5367](https://github.com/apache/incubator-seata/pull/5367)] fix UpdateExecutorTest failed
+- [[#5383](https://github.com/apache/incubator-seata/pull/5383)] fix multi spring version test failed
+- [[#5391](https://github.com/apache/incubator-seata/pull/5391)] add unit test for config module
+- [[#5428](https://github.com/apache/incubator-seata/pull/5428)] fix FileTransactionStoreManagerTest failed
+- [[#5622](https://github.com/apache/incubator-seata/pull/5622)] add unit test [ExporterType, RegistryType]
+- [[#5637](https://github.com/apache/incubator-seata/pull/5637)] add unit test [BatchResultMessage, HeartbeatMessage, RegisterRMResponse, ResultCode, RegisterTMResponse, MergeResultMessage, MergedWarpMessage, Version]
+- [[#5893](https://github.com/apache/incubator-seata/pull/5893)] remove sofa test cases
+- [[#5845](https://github.com/apache/incubator-seata/pull/5845)] upgrade druid and add `test-druid.yml`
+- [[#5863](https://github.com/apache/incubator-seata/pull/5863)] fix unit test in java 21
+- [[#5986](https://github.com/apache/incubator-seata/pull/5986)] fix zookeeper UT failed
+- [[#5995](https://github.com/apache/incubator-seata/pull/5995)] add test cases for RaftClusterMetadataMsg
+- [[#6001](https://github.com/apache/incubator-seata/pull/6001)] add test cases for RaftMsgExecute under branch package
+- [[#5996](https://github.com/apache/incubator-seata/pull/5996)] add test cases for RaftMsgExecute under global package
+- [[#6003](https://github.com/apache/incubator-seata/pull/6003)] add test cases for RaftMsgExecute under lock package
+- [[#6005](https://github.com/apache/incubator-seata/pull/6005)] fix saga async tests undefined behavior
+- [[#6009](https://github.com/apache/incubator-seata/pull/6009)] add test cases for RaftServerFactory
+- [[#6052](https://github.com/apache/incubator-seata/pull/6052)] upgrade springboot and spring version for server for test
+
+### Contributors
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [xssdpgy](https://github.com/xssdpgy)
+- [albumenj](https://github.com/albumenj)
+- [PeppaO](https://github.com/PeppaO)
+- [yuruixin](https://github.com/yuruixin)
+- [CrazyLionLi](https://github.com/JavaLionLi)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [Bughue](https://github.com/Bughue)
+- [pengten](https://github.com/pengten)
+- [wangliang181230](https://github.com/wangliang181230)
+- [GoodBoyCoder](https://github.com/GoodBoyCoder)
+- [funky-eyes](https://github.com/funky-eyes)
+- [isharpever](https://github.com/isharpever)
+- [mxsm](https://github.com/mxsm)
+- [liuqiufeng](https://github.com/liuqiufeng)
+- [l81893521](https://github.com/l81893521)
+- [dmego](https://github.com/dmego)
+- [zsp419](https://github.com/zsp419)
+- [tuwenlin](https://github.com/tuwenlin)
+- [sixlei](https://github.com/sixlei)
+- [yixia](https://github.com/wt-better)
+- [capthua](https://github.com/capthua)
+- [robynron](https://github.com/robynron)
+- [XQDD](https://github.com/XQDD)
+- [Weelerer](https://github.com/Weelerer)
+- [Ifdevil](https://github.com/Ifdevil)
+- [iquanzhan](https://github.com/iquanzhan)
+- [leizhiyuan](https://github.com/leizhiyuan)
+- [Aruato](https://github.com/Aruato)
+- [ggbocoder](https://github.com/ggbocoder)
+- [ptyin](https://github.com/ptyin)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [xxxcrel](https://github.com/xxxcrel)
+- [fengzhenhai168](https://github.com/fengzhenhai168)
+- [tobehardest](https://github.com/tobehardest)
+- [leezongjie](https://github.com/leezongjie)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.8.0 (2023-11-05)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.8.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.8.0/seata-server-1.8.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.8.0
+
+Seata 1.8.0 Released
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#3672](https://github.com/apache/incubator-seata/pull/3672)] support Dameng database
+- [[#5892](https://github.com/apache/incubator-seata/pull/5892)] support PolarDB-X 2.0 database
+
+### bugfix
+
+- [[#5833](https://github.com/apache/incubator-seata/pull/5833)] bugfix: fix TC retry rollback wrongly, after the XA transaction fail and rollback
+- [[#5884](https://github.com/apache/incubator-seata/pull/5884)] fix dm escaped characters for upper and lower case column names
+- [[#5931](https://github.com/apache/incubator-seata/pull/5931)] fix the issue of missing sentinel password in store redis mode
+- [[#5970](https://github.com/apache/incubator-seata/pull/5970)] fix some configurations that are not deprecated show "Deprecated"
+
+### optimize
+
+- [[#5866](https://github.com/apache/incubator-seata/pull/5866)] some minor syntax optimization
+- [[#5889](https://github.com/apache/incubator-seata/pull/5889)] remove dependency without license
+- [[#5890](https://github.com/apache/incubator-seata/pull/5890)] remove 7z format compression support
+- [[#5891](https://github.com/apache/incubator-seata/pull/5891)] remove mariadb.jdbc dependency
+- [[#5828](https://github.com/apache/incubator-seata/pull/5828)] fix codecov chart not display
+- [[#5927](https://github.com/apache/incubator-seata/pull/5927)] optimize some scripts related to Apollo
+- [[#5918](https://github.com/apache/incubator-seata/pull/5918)] standardized the properties of codecov.yml
+- [[#5939](https://github.com/apache/incubator-seata/pull/5939)] support jmx port in seata
+
+### security
+
+- [[#5867](https://github.com/apache/incubator-seata/pull/5867)] fix npm package vulnerabilities
+- [[#5898](https://github.com/apache/incubator-seata/pull/5898)] fix npm package vulnerabilities
+
+### test
+
+- [[#5888](https://github.com/apache/incubator-seata/pull/5888)] remove sofa test cases
+- [[#5831](https://github.com/apache/incubator-seata/pull/5831)] upgrade druid and add `test-druid.yml`
+- [[#5862](https://github.com/apache/incubator-seata/pull/5862)] fix unit test in java 21
+- [[#5914](https://github.com/apache/incubator-seata/pull/5914)] upgrade native-lib-loader version
+- [[#5960](https://github.com/apache/incubator-seata/pull/5960)] fix zookeeper UT failed
+- [[#5981](https://github.com/apache/incubator-seata/pull/5981)] fixed jedis version for `seata-server`
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+<!-- Please make sure your Github ID is in the list below -->
+
+- [slievrly](https://github.com/slievrly)
+- [capthua](https://github.com/capthua)
+- [funky-eyes](https://github.com/funky-eyes)
+- [iquanzhan](https://github.com/iquanzhan)
+- [leizhiyuan](https://github.com/leizhiyuan)
+- [l81893521](https://github.com/l81893521)
+- [PeppaO](https://github.com/PeppaO)
+- [wangliang181230](https://github.com/wangliang181230)
+- [hsien999](https://github.com/hsien999)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.7.1 (2023-09-05)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.7.1.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.7.1/seata-server-1.7.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.7.1
+
+Seata 1.7.1 Released
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#5803](https://github.com/apache/incubator-seata/pull/5803)] docker image supports JVM parameter injection
+
+### bugfix
+
+- [[#5749](https://github.com/apache/incubator-seata/pull/5749)] case of the pk col-name in the business sql is inconsistent with the case in the table metadata, resulting in a rollback failure
+- [[#5762](https://github.com/apache/incubator-seata/pull/5762)] change some fields type of TableMetaCache to avoid integer overflow
+- [[#5769](https://github.com/apache/incubator-seata/pull/5769)] fix the problem that the parameter prefix requirement of the setAttachment method in sofa-rpc is not met
+- [[#5814](https://github.com/apache/incubator-seata/pull/5814)] fix XA transaction start exception and rollback failure
+- [[#5771](https://github.com/apache/incubator-seata/pull/5771)] insert executor keywords unescape
+- [[#5819](https://github.com/apache/incubator-seata/pull/5814)] fix oracle column alias cannot find
+
+### optimize
+
+- [[#5804](https://github.com/apache/incubator-seata/pull/5804)] optimize docker default timezone
+- [[#5815](https://github.com/apache/incubator-seata/pull/5815)] support the nacos application name property
+- [[#5820](https://github.com/apache/incubator-seata/pull/5820)] unified log output directory
+- [[#5822](https://github.com/apache/incubator-seata/pull/5822)] upgrade some deprecated github actions
+
+### security
+
+- [[#5728](https://github.com/apache/incubator-seata/pull/5728)] fix some dependencies vulnerability
+- [[#5766](https://github.com/apache/incubator-seata/pull/5766)] fix some serializer vulnerabilities
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+<!-- Please make sure your Github ID is in the list below -->
+
+- [slievrly](https://github.com/slievrly)
+- [capthua](https://github.com/capthua)
+- [robynron](https://github.com/robynron)
+- [dmego](https://github.com/dmego)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [hadoop835](https://github.com/hadoop835)
+- [funky-eyes](https://github.com/funky-eyes)
+- [DroidEye2ONGU](https://github.com/DroidEye2ONGU)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.7.0 (2023-07-11)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.7.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.7.0/seata-server-1.7.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.7.0
+
+Seata 1.7.0 Released
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#5476](https://github.com/apache/incubator-seata/pull/5476)] first support `native-image` for `seata-client`
+- [[#5495](https://github.com/apache/incubator-seata/pull/5495)] console integration saga-statemachine-designer
+- [[#5668](https://github.com/apache/incubator-seata/pull/5668)] compatible with file.conf and registry.conf configurations in version 1.4.2 and below
+
+### bugfix
+
+- [[#5682](https://github.com/apache/incubator-seata/pull/5682)] fix saga mode replay context lost startParams
+- [[#5671](https://github.com/apache/incubator-seata/pull/5671)] fix saga mode serviceTask inputParams json autoType convert exception
+- [[#5194](https://github.com/apache/incubator-seata/pull/5194)] fix wrong keyword order for oracle when creating a table
+- [[#5021](https://github.com/apache/incubator-seata/pull/5201)] fix JDK Reflection for Spring origin proxy failed in JDK17
+- [[#5023](https://github.com/apache/incubator-seata/pull/5203)] fix `seata-core` dependency transitive conflict in `seata-dubbo`
+- [[#5224](https://github.com/apache/incubator-seata/pull/5224)] fix oracle initialize script index_name is duplicate
+- [[#5233](https://github.com/apache/incubator-seata/pull/5233)] fix the inconsistent configuration item names related to LoadBalance
+- [[#5266](https://github.com/apache/incubator-seata/pull/5265)] fix server console has queried the released lock
+- [[#5245](https://github.com/apache/incubator-seata/pull/5245)] fix the incomplete dependency of distribution module
+- [[#5239](https://github.com/apache/incubator-seata/pull/5239)] fix `getConfig` throw `ClassCastException` when use JDK proxy
+- [[#5281](https://github.com/apache/incubator-seata/pull/5281)] parallel request handle throw IndexOutOfBoundsException
+- [[#5288](https://github.com/apache/incubator-seata/pull/5288)] fix auto-increment of pk columns in Oracle in AT mode
+- [[#5287](https://github.com/apache/incubator-seata/pull/5287)] fix auto-increment of pk columns in PostgreSQL in AT mode
+- [[#5299](https://github.com/apache/incubator-seata/pull/5299)] fix GlobalSession deletion when retry rollback or retry commit timeout
+- [[#5307](https://github.com/apache/incubator-seata/pull/5307)] fix that keywords don't add escaped characters
+- [[#5311](https://github.com/apache/incubator-seata/pull/5311)] remove RollbackRetryTimeout sessions during in file storage recover
+- [[#4734](https://github.com/apache/incubator-seata/pull/4734)] check if table meta cache should be refreshed in AT mode
+- [[#5316](https://github.com/apache/incubator-seata/pull/5316)] fix G1 jvm parameter in jdk8
+- [[#5321](https://github.com/apache/incubator-seata/pull/5321)] fix When the rollback logic on the TC side returns RollbackFailed, the custom FailureHandler is not executed
+- [[#5332](https://github.com/apache/incubator-seata/pull/5332)] fix bugs found in unit tests
+- [[#5145](https://github.com/apache/incubator-seata/pull/5145)] fix global session is always begin in saga mode
+- [[#5413](https://github.com/apache/incubator-seata/pull/5413)] fix bad service configuration file and compilation failure
+- [[#5415](https://github.com/apache/incubator-seata/pull/5415)] fix transaction timeout on client side not execute hook and failureHandler
+- [[#5447](https://github.com/apache/incubator-seata/pull/5447)] fix oracle xa mode cannnot be used By same database
+- [[#5472](https://github.com/apache/incubator-seata/pull/5472)] fix if using `@GlobalTransactional` in RM, `ShouldNeverHappenException` will be thrown
+- [[#5535](https://github.com/apache/incubator-seata/pull/5535)] fix the log file path was loaded incorrectly
+- [[#5538](https://github.com/apache/incubator-seata/pull/5538)] fix finished transaction swallows exception when committing
+- [[#5539](https://github.com/apache/incubator-seata/pull/5539)] fix the full table scan issue with 'setDate' condition in Oracle 10g
+- [[#5540](https://github.com/apache/incubator-seata/pull/5540)] fix GlobalStatus=9 can't be cleared in DB storage mode
+- [[#5552](https://github.com/apache/incubator-seata/pull/5552)] fix mariadb rollback failed
+- [[#5583](https://github.com/apache/incubator-seata/pull/5583)] fix grpc interceptor xid unbinding problem
+- [[#5602](https://github.com/apache/incubator-seata/pull/5602)] fix log in participant transaction role
+- [[#5645](https://github.com/apache/incubator-seata/pull/5645)] fix oracle insert undolog failed
+- [[#5659](https://github.com/apache/incubator-seata/pull/5659)] fix the issue of case sensitivity enforcement on the database after adding escape characters to keywords
+- [[#5663](https://github.com/apache/incubator-seata/pull/5663)] fix the timeout is null when the connectionProxyXA connection is reused
+- [[#5675](https://github.com/apache/incubator-seata/pull/5675)] fix compatibility between xxx.grouplist and grouplist.xxx configuration items
+- [[#5690](https://github.com/apache/incubator-seata/pull/5690)] fix console print `unauthorized error`
+- [[#5711](https://github.com/apache/incubator-seata/pull/5711)] fix get configuration item contains underlined error
+
+### optimize
+
+- [[#5208](https://github.com/apache/incubator-seata/pull/5208)] optimize throwable getCause once more
+- [[#5212](https://github.com/apache/incubator-seata/pull/5212)] optimize log message level
+- [[#5237](https://github.com/apache/incubator-seata/pull/5237)] optimize exception log message print(EnhancedServiceLoader.loadFile#cahtch)
+- [[#5089](https://github.com/apache/incubator-seata/pull/5089)] optimize the check of the delay value of the TCC fence log clean task
+- [[#5243](https://github.com/apache/incubator-seata/pull/5243)] optimize kryo 5.4.0 optimize compatibility with jdk17
+- [[#5153](https://github.com/apache/incubator-seata/pull/5153)] Only AT mode try to get channel with other app
+- [[#5177](https://github.com/apache/incubator-seata/pull/5177)] If `server.session.enable-branch-async-remove` is true, delete the branch asynchronously and unlock it synchronously.
+- [[#5273](https://github.com/apache/incubator-seata/pull/5273)] optimize the compilation configuration of the `protobuf-maven-plugin` plug-in to solve the problem of too long command lines in higher versions.
+- [[#5303](https://github.com/apache/incubator-seata/pull/5303)] remove startup script the -Xmn configuration
+- [[#5325](https://github.com/apache/incubator-seata/pull/5325)] add store mode,config type and registry type log info
+- [[#5315](https://github.com/apache/incubator-seata/pull/5315)] optimize the log of SPI
+- [[#5323](https://github.com/apache/incubator-seata/pull/5323)] add time info for global transaction timeout log
+- [[#5414](https://github.com/apache/incubator-seata/pull/5414)] optimize transaction fail handler
+- [[#5537](https://github.com/apache/incubator-seata/pull/5537)] optimize transaction log on client side
+- [[#5541](https://github.com/apache/incubator-seata/pull/5541)] optimize server log output
+- [[#5548](https://github.com/apache/incubator-seata/pull/5548)] update expire gpg key and publish workflow
+- [[#5638](https://github.com/apache/incubator-seata/pull/5638)] optimize: set server's transaction level to READ_COMMITTED
+- [[#5646](https://github.com/apache/incubator-seata/pull/5646)] refactor ColumnUtils and EscapeHandler
+- [[#5648](https://github.com/apache/incubator-seata/pull/5648)] optimize server logs print
+- [[#5647](https://github.com/apache/incubator-seata/pull/5647)] support case-sensitive attributes for table and column metadata
+- [[#5678](https://github.com/apache/incubator-seata/pull/5678)] optimize escape character for case of columnNames
+- [[#5684](https://github.com/apache/incubator-seata/pull/5684)] optimize github actions for CodeQL, skywalking-eyes and checkout
+- [[#5700](https://github.com/apache/incubator-seata/pull/5700)] optimize distributed lock log
+
+### security
+
+- [[#5172](https://github.com/apache/incubator-seata/pull/5172)] fix some security vulnerabilities
+- [[#5683](https://github.com/apache/incubator-seata/pull/5683)] add Hessian Serializer WhiteDenyList
+- [[#5696](https://github.com/apache/incubator-seata/pull/5696)] fix several node.js security vulnerabilities
+
+### test
+
+- [[#5380](https://github.com/apache/incubator-seata/pull/5380)] fix UpdateExecutorTest failed
+- [[#5382](https://github.com/apache/incubator-seata/pull/5382)] fix multi spring version test failed
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+<!-- Please make sure your Github ID is in the list below -->
+
+- [slievrly](https://github.com/slievrly)
+- [xssdpgy](https://github.com/xssdpgy)
+- [albumenj](https://github.com/albumenj)
+- [PeppaO](https://github.com/PeppaO)
+- [yuruixin](https://github.com/yuruixin)
+- [dmego](https://github.com/dmego)
+- [CrazyLionLi](https://github.com/JavaLionLi)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [Bughue](https://github.com/Bughue)
+- [pengten](https://github.com/pengten)
+- [wangliang181230](https://github.com/wangliang181230)
+- [GoodBoyCoder](https://github.com/GoodBoyCoder)
+- [funky-eyes](https://github.com/funky-eyes)
+- [isharpever](https://github.com/isharpever)
+- [ZhangShiYeChina](https://github.com/ZhangShiYeChina)
+- [mxsm](https://github.com/mxsm)
+- [l81893521](https://github.com/l81893521)
+- [liuqiufeng](https://github.com/liuqiufeng)
+- [yixia](https://github.com/wt-better)
+- [jumtp](https://github.com/jumtp)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.6.1 (2022-12-21)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.6.1.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.6.1/seata-server-1.6.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.6.1
+
+Seata 1.6.1 Released
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#5115](https://github.com/apache/incubator-seata/pull/5115)] support for `spring-boot:3.x`
+
+### bugfix
+
+- [[#5179](https://github.com/apache/incubator-seata/pull/5179)] fix ClassNotFoundException when server starts using Eureka
+
+### optimize
+
+- [[#5120](https://github.com/apache/incubator-seata/pull/5120)] unify the format of configuration items in yml files
+- [[#5180](https://github.com/apache/incubator-seata/pull/5180)] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator declare @bean methods as static
+- [[#5182](https://github.com/apache/incubator-seata/pull/5182)] fix some security vulnerabilities in GGEditor
+- [[#5183](https://github.com/apache/incubator-seata/pull/5183)] optimize the default values for some switches
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+<!-- Please make sure your Github ID is in the list below -->
+
+- [slievrly](https://github.com/slievrly)
+- [wangliang181230](https://github.com/wangliang181230)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [whxxxxx](https://github.com/whxxxxx)
+- [xssdpgy](https://github.com/xssdpgy)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.6.0 (2022-12-17)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.6.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.6.0/seata-server-1.6.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.6.0
+
+Seata 1.6.0 Released
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#4863](https://github.com/apache/incubator-seata/pull/4863)] support oracle and postgresql multi primary key
+- [[#4649](https://github.com/apache/incubator-seata/pull/4649)] seata-server support multiple registry
+- [[#4779](https://github.com/apache/incubator-seata/pull/4779)] support Apache Dubbo3
+- [[#4479](https://github.com/apache/incubator-seata/pull/4479)] TCC mode supports tcc annotation marked on both interface and implementation class
+- [[#4877](https://github.com/apache/incubator-seata/pull/4877)] seata client support jdk17
+- [[#4914](https://github.com/apache/incubator-seata/pull/4914)] support mysql update join sql
+- [[#4542](https://github.com/apache/incubator-seata/pull/4542)] support oracle timestamp types
+- [[#5111](https://github.com/apache/incubator-seata/pull/5111)] support Nacos contextPath
+- [[#4802](https://github.com/apache/incubator-seata/pull/4802)] dockerfile support arm64
+
+### bugfix
+
+- [[#4780](https://github.com/apache/incubator-seata/pull/4780)] fix can't post TimeoutRollbacked event after a successful timeout rollback
+- [[#4954](https://github.com/apache/incubator-seata/pull/4954)] fix output expression incorrectly throws npe
+- [[#4817](https://github.com/apache/incubator-seata/pull/4817)] fix in high version springboot property not Standard
+- [[#4838](https://github.com/apache/incubator-seata/pull/4838)] fix when use Statement.executeBatch() can not generate undo log
+- [[#4533](https://github.com/apache/incubator-seata/pull/4533)] fix rollback event repeated and some event status not correct
+- [[#4912](https://github.com/apache/incubator-seata/pull/4912)] fix mysql InsertOnDuplicateUpdate column case is different and cannot be matched
+- [[#4543](https://github.com/apache/incubator-seata/pull/4543)] fix support Oracle nclob types
+- [[#4915](https://github.com/apache/incubator-seata/pull/4915)] fix failed to get server recovery properties
+- [[#4919](https://github.com/apache/incubator-seata/pull/4919)] fix XID port and address null:0 before coordinator.init
+- [[#4928](https://github.com/apache/incubator-seata/pull/4928)] fix rpcContext.getClientRMHolderMap NPE
+- [[#4953](https://github.com/apache/incubator-seata/pull/4953)] fix InsertOnDuplicateUpdate bypass modify pk
+- [[#4978](https://github.com/apache/incubator-seata/pull/4978)] fix kryo support circular reference
+- [[#4874](https://github.com/apache/incubator-seata/pull/4874)] fix startup failure by using OpenJDK 11
+- [[#5018](https://github.com/apache/incubator-seata/pull/5018)] fix loader path in startup scripts
+- [[#5004](https://github.com/apache/incubator-seata/pull/5004)] fix duplicate image row for update join
+- [[#5032](https://github.com/apache/incubator-seata/pull/5032)] fix mysql InsertOnDuplicateUpdate sql query error caused by placeholder index calculation error
+- [[#5033](https://github.com/apache/incubator-seata/pull/5033)] fix null exception when sql columns is empty for insert on duplicate
+- [[#5038](https://github.com/apache/incubator-seata/pull/5038)] remove @EnableConfigurationProperties(\{SagaAsyncThreadPoolProperties.class})
+- [[#5050](https://github.com/apache/incubator-seata/pull/5050)] fix global session is not change to Committed in saga mode
+- [[#5052](https://github.com/apache/incubator-seata/pull/5052)] fix update join condition placeholder param error
+- [[#5031](https://github.com/apache/incubator-seata/pull/5031)] fix mysql InsertOnDuplicateUpdate should not use null index value as image sql query condition
+- [[#5075](https://github.com/apache/incubator-seata/pull/5075)] fix InsertOnDuplicateUpdateExecutor could not intercept the sql which has no primary and unique key
+- [[#5093](https://github.com/apache/incubator-seata/pull/5093)] fix access key loss after seata server restart
+- [[#5092](https://github.com/apache/incubator-seata/pull/5092)] fix when seata and jpa are used together, their AutoConfiguration order is incorrect
+- [[#5109](https://github.com/apache/incubator-seata/pull/5109)] fix NPE caused when there is no @GlobalTransactional annotation on the RM side
+- [[#5098](https://github.com/apache/incubator-seata/pull/5098)] Druid disable oracle implicit cache
+- [[#4860](https://github.com/apache/incubator-seata/pull/4860)] fix metrics tags coverage in the seata-server side
+- [[#5028](https://github.com/apache/incubator-seata/pull/5028)] fix insert value null parsed as string in insert on duplicate SQL
+- [[#5078](https://github.com/apache/incubator-seata/pull/5078)] fix could not intercept the sql witch has no primary and unique key
+- [[#5097](https://github.com/apache/incubator-seata/pull/5097)] fix access key loss after server restart
+- [[#5131](https://github.com/apache/incubator-seata/pull/5131)] fix rollback xa connection active state
+- [[#5134](https://github.com/apache/incubator-seata/pull/5134)] fix hikari datasource auto proxy fail
+- [[#5163](https://github.com/apache/incubator-seata/pull/5163)] fix bad service configuration file and compilation failure
+
+### optimize
+
+- [[#4774](https://github.com/apache/incubator-seata/pull/4774)] optimize mysql8 dependencies for seataio/seata-server image
+- [[#4790](https://github.com/apache/incubator-seata/pull/4790)] Add a github action to publish Seata to OSSRH
+- [[#4765](https://github.com/apache/incubator-seata/pull/4765)] mysql 8.0.29 not should be hold for connection
+- [[#4750](https://github.com/apache/incubator-seata/pull/4750)] optimize unBranchLock romove xid
+- [[#4797](https://github.com/apache/incubator-seata/pull/4797)] optimize the github actions
+- [[#4800](https://github.com/apache/incubator-seata/pull/4800)] Add NOTICE as Apache License V2
+- [[#4681](https://github.com/apache/incubator-seata/pull/4681)] optimize the check lock during global transaction
+- [[#4761](https://github.com/apache/incubator-seata/pull/4761)] use hget replace hmget because only one field
+- [[#4414](https://github.com/apache/incubator-seata/pull/4414)] exclude log4j dependencies
+- [[#4836](https://github.com/apache/incubator-seata/pull/4836)] optimize BaseTransactionalExecutor#buildLockKey(TableRecords rowsIncludingPK) method more readable
+- [[#4865](https://github.com/apache/incubator-seata/pull/4865)] fix some security vulnerabilities in GGEditor
+- [[#4590](https://github.com/apache/incubator-seata/pull/4590)] auto degrade enable to dynamic configure
+- [[#4490](https://github.com/apache/incubator-seata/pull/4490)] tccfence log table delete by index
+- [[#4911](https://github.com/apache/incubator-seata/pull/4911)] add license checker workflow
+- [[#4917](https://github.com/apache/incubator-seata/pull/4917)] upgrade package-lock.json fix vulnerabilities
+- [[#4924](https://github.com/apache/incubator-seata/pull/4924)] optimize pom dependencies
+- [[#4932](https://github.com/apache/incubator-seata/pull/4932)] extract the default values for some properties
+- [[#4925](https://github.com/apache/incubator-seata/pull/4925)] optimize java doc warning
+- [[#4921](https://github.com/apache/incubator-seata/pull/4921)] fix some vulnerabilities in console and upgrade skywalking-eyes
+- [[#4936](https://github.com/apache/incubator-seata/pull/4936)] optimize read of storage configuration
+- [[#4946](https://github.com/apache/incubator-seata/pull/4946)] pass the sqlexception to client when get lock
+- [[#4962](https://github.com/apache/incubator-seata/pull/4962)] optimize build and fix the base image
+- [[#4974](https://github.com/apache/incubator-seata/pull/4974)] optimize cancel the limit on the number of globalStatus queries in Redis mode
+- [[#4981](https://github.com/apache/incubator-seata/pull/4981)] optimize tcc fence record not exists errMessage
+- [[#4985](https://github.com/apache/incubator-seata/pull/4985)] fix undo_log id repeat
+- [[#4995](https://github.com/apache/incubator-seata/pull/4995)] fix mysql InsertOnDuplicateUpdate duplicate pk condition in after image query sql
+- [[#5047](https://github.com/apache/incubator-seata/pull/5047)] remove useless code
+- [[#5051](https://github.com/apache/incubator-seata/pull/5051)] undo log dirty throw BranchRollbackFailed_Unretriable
+- [[#5075](https://github.com/apache/incubator-seata/pull/5075)] intercept the InsertOnDuplicateUpdate statement which has no primary key and unique index value
+- [[#5104](https://github.com/apache/incubator-seata/pull/5104)] remove the druid dependency in ConnectionProxy
+- [[#5124](https://github.com/apache/incubator-seata/pull/5124)] support oracle on delete tccfence logs
+- [[#4468](https://github.com/apache/incubator-seata/pull/4968)] support kryo 5.3.0
+- [[#4807](https://github.com/apache/incubator-seata/pull/4807)] optimize docker image and oss publish
+- [[#4445](https://github.com/apache/incubator-seata/pull/4445)] optimize transaction timeout judgment
+- [[#4958](https://github.com/apache/incubator-seata/pull/4958)] do not execute triggerAfterCommit() if timeout
+- [[#4582](https://github.com/apache/incubator-seata/pull/4582)] redis mode support sorted set by timeout
+- [[#4963](https://github.com/apache/incubator-seata/pull/4963)] add ARM64 CI workflow
+- [[#4434](https://github.com/apache/incubator-seata/pull/4434)] remove seata-server's CMS parameters
+
+### test
+
+- [[#4411](https://github.com/apache/incubator-seata/pull/4411)] add UT for oracle in AT mode
+- [[#4794](https://github.com/apache/incubator-seata/pull/4794)] try to fix the test `DataSourceProxyTest.getResourceIdTest()`
+- [[#5101](https://github.com/apache/incubator-seata/pull/5101)] fix ClassNotFoundException during the zk unit test
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+<!-- Please make sure your Github ID is in the list below -->
+
+- [slievrly](https://github.com/slievrly)
+- [renliangyu857](https://github.com/renliangyu857)
+- [wangliang181230](https://github.com/wangliang181230)
+- [funky-eyes](https://github.com/funky-eyes)
+- [tuwenlin](https://github.com/tuwenlin)
+- [conghuhu](https://github.com/conghuhu)
+- [a1104321118](https://github.com/a1104321118)
+- [duanqiaoyanyu](https://github.com/duanqiaoyanyu)
+- [robynron](https://github.com/robynron)
+- [lcmvs](https://github.com/lcmvs)
+- [github-ganyu](https://github.com/github-ganyu)
+- [1181954449](https://github.com/1181954449)
+- [zw201913](https://github.com/zw201913)
+- [wingchi-leung](https://github.com/wingchi-leung)
+- [AlexStocks](https://github.com/AlexStocks)
+- [liujunlin5168](https://github.com/liujunlin5168)
+- [pengten](https://github.com/pengten)
+- [liuqiufeng](https://github.com/liuqiufeng)
+- [yujianfei1986](https://github.com/yujianfei1986)
+- [Bughue](https://github.com/Bughue)
+- [AlbumenJ](https://github.com/AlbumenJ)
+- [doubleDimple](https://github.com/doubleDimple)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [tuwenlin](https://github.com/tuwenlin)
+- [CrazyLionLi](https://github.com/JavaLionLi)
+- [whxxxxx](https://github.com/whxxxxx)
+- [neillee95](https://github.com/neillee95)
+- [crazy-sheep](https://github.com/crazy-sheep)
+- [zhangzq7](https://github.com/zhangzq7)
+- [l81893521](https://github.com/l81893521)
+- [zhuyoufeng](https://github.com/zhuyoufeng)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [odidev](https://github.com/odidev)
+- [miaoxueyu](https://github.com/miaoxueyu)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.5.2 (2022-07-12)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.5.2.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.5.2/seata-server-1.5.2.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.5.2
+
+Seata 1.5.2 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#4661](https://github.com/apache/incubator-seata/pull/4713)] support xid load balance
+- [[#4676](https://github.com/apache/incubator-seata/pull/4676)] support server to expose Nacos services by mounting SLB
+- [[#4642](https://github.com/apache/incubator-seata/pull/4642)] support batch message parallel processing
+- [[#4567](https://github.com/apache/incubator-seata/pull/4567)] support where method condition(find_in_set)
+
+### bugfix
+
+- [[#4515](https://github.com/apache/incubator-seata/pull/4515)] fix the error of SeataTCCFenceAutoConfiguration when database unused
+- [[#4661](https://github.com/apache/incubator-seata/pull/4661)] fix sql exception with PostgreSQL in module console
+- [[#4667](https://github.com/apache/incubator-seata/pull/4682)] fix the exception in RedisTransactionStoreManager for update map During iteration
+- [[#4678](https://github.com/apache/incubator-seata/pull/4678)] fix the error of key transport.enableRmClientBatchSendRequest cache penetration if not configure
+- [[#4701](https://github.com/apache/incubator-seata/pull/4701)] fix missing command line args
+- [[#4607](https://github.com/apache/incubator-seata/pull/4607)] fix bug on skipping lock check
+- [[#4696](https://github.com/apache/incubator-seata/pull/4696)] fix oracle database insert value
+- [[#4726](https://github.com/apache/incubator-seata/pull/4726)] fix batch message send may return NullPointException
+- [[#4729](https://github.com/apache/incubator-seata/pull/4729)] fix set AspectTransactional.rollbackForClassName with wrong value
+- [[#4653](https://github.com/apache/incubator-seata/pull/4653)] fix the sql exception when pk is non-numeric in INSERT_ON_DUPLICATE SQL
+
+### optimize
+
+- [[#4650](https://github.com/apache/incubator-seata/pull/4650)] fix some security vulnerabilities
+- [[#4670](https://github.com/apache/incubator-seata/pull/4670)] optimize the thread pool size of branchResultMessageExecutor
+- [[#4662](https://github.com/apache/incubator-seata/pull/4662)] optimize rollback transaction metrics
+- [[#4693](https://github.com/apache/incubator-seata/pull/4693)] optimize the console navigation bar
+- [[#4700](https://github.com/apache/incubator-seata/pull/4700)] fix maven-compiler-plugin and maven-resources-plugin execute failed
+- [[#4711](https://github.com/apache/incubator-seata/pull/4711)] separate lib dependencies for deployments
+- [[#4720](https://github.com/apache/incubator-seata/pull/4720)] optimize pom description
+- [[#4728](https://github.com/apache/incubator-seata/pull/4728)] upgrade logback dependency to 1.2.9
+- [[#4745](https://github.com/apache/incubator-seata/pull/4745)] support mysql8 in release package
+- [[#4626](https://github.com/apache/incubator-seata/pull/4626)] Replace `flatten-maven-plugin` with `easyj-maven-plugin` to fix the conflict between `shade` and `flatten`
+- [[#4629](https://github.com/apache/incubator-seata/pull/4629)] check relation of before status and after status when updating global session
+- [[#4662](https://github.com/apache/incubator-seata/pull/4662)] make EnhancedServiceLoader more readable
+
+### test
+
+- [[#4544](https://github.com/apache/incubator-seata/pull/4544)] optimize jackson dependencies in TransactionContextFilterTest
+- [[#4731](https://github.com/apache/incubator-seata/pull/4731)] fix UT failed in AsyncWorkerTest and LockManagerTest
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+<!-- Please make sure your Github ID is in the list below -->
+
+- [slievrly](https://github.com/slievrly)
+- [pengten](https://github.com/pengten)
+- [YSF-A](https://github.com/YSF-A)
+- [tuwenlin](https://github.com/tuwenlin)
+- [Ifdevil](https://github.com/Ifdevil)
+- [wingchi-leung](https://github.com/wingchi-leung)
+- [liurong](https://github.com/robynron)
+- [opelok-z](https://github.com/opelok-z)
+- [funky-eyes](https://github.com/funky-eyes)
+- [2129zxl](https://github.com/2129zxl)
+- [Smery-lxm](https://github.com/Smery-lxm)
+- [doubleDimple](https://github.com/doubleDimple)
+- [wangliang181230](https://github.com/wangliang181230)
+- [Bughue](https://github.com/Bughue)
+- [AYue-94](https://github.com/AYue-94)
+- [lingxiao-wu](https://github.com/lingxiao-wu)
+- [caohdgege](https://github.com/caohdgege)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.5.1 (2021-05-17)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.5.1.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.5.1/seata-server-1.5.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### feature
+
+- [[#4115](https://github.com/apache/incubator-seata/pull/4115) ] support console management
+- [[#3472](https://github.com/apache/incubator-seata/pull/3472) ] add redisLocker's lua mode
+- [[#3575](https://github.com/apache/incubator-seata/pull/3575) ] support the mixed use of different storages of locks and sessions
+- [[#3374](https://github.com/apache/incubator-seata/pull/3374) ] add a Executor for INSERT ON DUPLICATE KEY UPDATE
+- [[#3642](https://github.com/apache/incubator-seata/pull/3642) ] provide an api to share tcc phase-1's params to phase-2
+- [[#3064](https://github.com/apache/incubator-seata/pull/3064) ] support configuring the order of the TM and TCC interceptor
+- [[#2852](https://github.com/apache/incubator-seata/pull/2852) ] support configuring scan target for GlobalTransactionScanner
+- [[#3683](https://github.com/apache/incubator-seata/pull/3683) ] support redis distributed lock to prevent multi TC competition
+- [[#3545](https://github.com/apache/incubator-seata/pull/3545) ] TCC mode support idempotent and anti hanging
+- [[#3009](https://github.com/apache/incubator-seata/pull/3009) ] support server start with springboot and config with application.yaml
+- [[#3652](https://github.com/apache/incubator-seata/pull/3652) ] support APM with SkyWalking
+- [[#3823](https://github.com/apache/incubator-seata/pull/3823) ] TCC mode supports customized parameters list of the method in phase two
+- [[#3642](https://github.com/apache/incubator-seata/pull/3642) ] TCC mode's try method supports passing `BusinessActionContext` implicitly
+- [[#3856](https://github.com/apache/incubator-seata/pull/3856) ] support edas-hsf RPC framework
+- [[#3880](https://github.com/apache/incubator-seata/pull/3880) ] contributing md support chinese.
+- [[#2568](https://github.com/apache/incubator-seata/pull/2568) ] support GlobalTransactionInterceptor expression
+- [[#3886](https://github.com/apache/incubator-seata/pull/3886) ] support the registry center network preferences
+- [[#3869](https://github.com/apache/incubator-seata/pull/3869) ] support get configuration from environment
+- [[#3906](https://github.com/apache/incubator-seata/pull/3906) ] support SPI unload
+- [[#3668](https://github.com/apache/incubator-seata/pull/3668) ] support kotlin coroutine
+- [[#3968](https://github.com/apache/incubator-seata/pull/3968) ] support brpc-java RPC framework
+- [[#4134](https://github.com/apache/incubator-seata/pull/4134) ] init the console basic code
+- [[#4268](https://github.com/apache/incubator-seata/pull/4268) ] query global session in the file mode
+- [[#4281](https://github.com/apache/incubator-seata/pull/4281) ] query global session and global lock in the redis mode
+- [[#4293](https://github.com/apache/incubator-seata/pull/4293) ] get global lock in the file mode
+- [[#4335](https://github.com/apache/incubator-seata/pull/4335) ] Realize configuration center upload configuration interactive script (nacos,etcd3)
+- [[#4360](https://github.com/apache/incubator-seata/pull/4360) ] Realize configuration center upload configuration interactive script (apollo,consul,zk)
+- [[#4320](https://github.com/apache/incubator-seata/pull/4320) ] realize the interface of console: get global session and global lock in the db mode
+- [[#4435](https://github.com/apache/incubator-seata/pull/4435) ] console front-end page implementation
+- [[#4480](https://github.com/apache/incubator-seata/pull/4480) ] implementation of DefaultAuthSigner
+- [[#3870](https://github.com/apache/incubator-seata/pull/3870) ] make seata-bom be the real Bill-Of-Material
+- [[#3487](https://github.com/apache/incubator-seata/pull/3487) ] add db realization for distribute lock
+- [[#3889](https://github.com/apache/incubator-seata/pull/3889) ] registry add heartbeat
+- [[#3951](https://github.com/apache/incubator-seata/pull/3951) ] support zstd compressor
+- [[#2838](https://github.com/apache/incubator-seata/pull/2838) ] Saga support auto configuration in the spring boot project
+
+### bugfix
+
+- [[#3497](https://github.com/apache/incubator-seata/pull/3497) ] fix tcc phase two response timeout exception
+- [[#3686](https://github.com/apache/incubator-seata/pull/3686) ] fix NPE and wrong cluster name of Apollo
+- [[#3702](https://github.com/apache/incubator-seata/pull/3702) ] fix some comments
+- [[#3716](https://github.com/apache/incubator-seata/pull/3716) ] fix the problem in the findTargetClass method
+- [[#3717](https://github.com/apache/incubator-seata/pull/3717) ] fix typo of interval
+- [[#3773](https://github.com/apache/incubator-seata/pull/3773) ] fix consul not found tc cluster
+- [[#3695](https://github.com/apache/incubator-seata/pull/3695) ] fix mariadb unable to create XA connection
+- [[#3783](https://github.com/apache/incubator-seata/pull/3783) ] fix the problem that store mode does not take effect
+- [[#3740](https://github.com/apache/incubator-seata/pull/3740) ] fix that `LocalThread` is not cleared when the `Saga` transaction ends
+- [[#3792](https://github.com/apache/incubator-seata/pull/3792) ] fix the Server can't find redis-host property
+- [[#3828](https://github.com/apache/incubator-seata/pull/3828) ] fix StringUtils StackOverflowError
+- [[#3817](https://github.com/apache/incubator-seata/pull/3817) ] fix TC SkyWalking topo calling node not gather
+- [[#3803](https://github.com/apache/incubator-seata/pull/3803) ] fix ReflectionUtil throw unexpected exception
+- [[#3879](https://github.com/apache/incubator-seata/pull/3879) ] fix postgresql multi schema throw not found channel exception
+- [[#3881](https://github.com/apache/incubator-seata/pull/3881) ] fix getConfig with different default value return the first
+- [[#3897](https://github.com/apache/incubator-seata/pull/3897) ] fix LocalDataTime type in FastjsonUndoLogParser can't be rollback
+- [[#3901](https://github.com/apache/incubator-seata/pull/3901) ] fix seataio/seata-server servlet-api conflict
+- [[#3931](https://github.com/apache/incubator-seata/pull/3931) ] fix the wrong path and filename when dump the jvm memory for analysis
+- [[#3978](https://github.com/apache/incubator-seata/pull/3978) ] fix NPE cause by future timeout
+- [[#4266](https://github.com/apache/incubator-seata/pull/4266) ] fix register branch and release lock failed when the size of rows that modified is greater than 1000 in oracle
+- [[#3949](https://github.com/apache/incubator-seata/pull/3949) ] fix the problem that `nacos-config.py` will not skip blank options. fix bug that split options may cause content loss
+- [[#3988](https://github.com/apache/incubator-seata/pull/3988) ] fix the problem that nacos not found user when password has special characters
+- [[#3998](https://github.com/apache/incubator-seata/pull/3998) ] fix the NPE of jedis multi.exec
+- [[#4011](https://github.com/apache/incubator-seata/pull/4011) ] fix can not get properties of distributed-lock-table in springboot
+- [[#4025](https://github.com/apache/incubator-seata/pull/4025) ] fix potential database resource leak
+- [[#4023](https://github.com/apache/incubator-seata/pull/4023) ] fix the problem that the xid is not cleared in some scenes of dubbo
+- [[#4039](https://github.com/apache/incubator-seata/pull/4039) ] fix RM did not clear XID after the local transaction threw an exception
+- [[#4032](https://github.com/apache/incubator-seata/pull/4032) ] fix ApplicationContext already closed problem when Seata server using ShutdownHook to destroy
+- [[#4074](https://github.com/apache/incubator-seata/pull/4074) ] fix prevents XA mode resource suspension
+- [[#4107](https://github.com/apache/incubator-seata/pull/4107) ] fix deadlock problems during project construction
+- [[#4158](https://github.com/apache/incubator-seata/pull/4158) ] fix the logback can't load the `RPC_PORT`
+- [[#4162](https://github.com/apache/incubator-seata/pull/4162) ] fix correct built-in properties for redis registry
+- [[#4165](https://github.com/apache/incubator-seata/pull/4165) ] fix `StringUtils.toString(obj)` throw `ClassCastException` when the obj is primitive data array
+- [[#4169](https://github.com/apache/incubator-seata/pull/4169) ] fix xa mode originalConnection has been closed, cause PhaseTwo fail to execute
+- [[#4177](https://github.com/apache/incubator-seata/pull/4177) ] fix the problem of accidentally releasing the global lock
+- [[#4174](https://github.com/apache/incubator-seata/pull/4174) ] fix delete undo log connection already closed
+- [[#4189](https://github.com/apache/incubator-seata/pull/4189) ] fix the `kafka-appender.xml` and `logstash-appender.xml`
+- [[#4213](https://github.com/apache/incubator-seata/pull/4213) ] fix code for "sessionMode" not execute problem
+- [[#4220](https://github.com/apache/incubator-seata/pull/4220) ] fix some problems with `zstd` compressor and add the version of the `kotlin-maven-plugin`
+- [[#4222](https://github.com/apache/incubator-seata/pull/4222) ] fix could not rollback when insert field list is empty
+- [[#4253](https://github.com/apache/incubator-seata/pull/4253) ] update executor store the actually modified columns but not only the columns in set condition
+- [[#4276](https://github.com/apache/incubator-seata/pull/4276) ] fix seata-test module UT not work
+- [[#4278](https://github.com/apache/incubator-seata/pull/4278) ] fix the problem that mysql's Blob/Clob/NClob data type cannot be deserialized
+- [[#4302](https://github.com/apache/incubator-seata/pull/4302) ] fix the problem that other ORMs may not be able to obtain the auto-incrementing primary key value
+- [[#4233](https://github.com/apache/incubator-seata/pull/4233) ] fix data remanence problems in lock and branch under specific circumstances.
+- [[#4308](https://github.com/apache/incubator-seata/pull/4308) ] fix the TableMetaCache parsing problem with the same table under multiple Postgresql schemas
+- [[#4326](https://github.com/apache/incubator-seata/pull/4326) ] fix inability to build Executor when using mariadb driver
+- [[#4355](https://github.com/apache/incubator-seata/pull/4355) ] fix mysql-loadbalance resource id error
+- [[#4310](https://github.com/apache/incubator-seata/pull/4310) ] fix the problem that failed to obtain the self increment ID of MySQL database through "select last_insert_id"
+- [[#4331](https://github.com/apache/incubator-seata/pull/4331) ] fix dirty write check exception that may occur when using ONLY_CARE_UPDATE_COLUMNS configuration
+- [[#4228](https://github.com/apache/incubator-seata/pull/4228) ] fix resource suspension in xa mode caused by choose other ip as channel alternative
+- [[#4408](https://github.com/apache/incubator-seata/pull/4408) ] fix the invalid environment variable in container env
+- [[#4441](https://github.com/apache/incubator-seata/pull/4441) ] fix the problem that pipelined resources are not closed in redis mode and add branchSession judge branchSessions is not null
+- [[#4438](https://github.com/apache/incubator-seata/pull/4438) ] fix the problem that GlobalSession could not be deleted normally in the case of delayed deletion in the file mode of the develop branch
+- [[#4432](https://github.com/apache/incubator-seata/pull/4432) ] fix the inability to get some remote configurations
+- [[#4452](https://github.com/apache/incubator-seata/pull/4452) ] fix the change log of 'service.disableGlobalTransaction' config
+- [[#4449](https://github.com/apache/incubator-seata/pull/4449) ] fix redis mode page npe and optimize get globalSession on average
+- [[#4459](https://github.com/apache/incubator-seata/pull/4459) ] fix the failure to obtain before image and after image on oracle and pgsql of the develop branch
+- [[#4471](https://github.com/apache/incubator-seata/pull/4471) ] in branch 'develop', fix the error when service.vgroupMapping change
+- [[#4474](https://github.com/apache/incubator-seata/pull/4474) ] fix Mysql multi-bit Bit type field rollback error
+- [[#4492](https://github.com/apache/incubator-seata/pull/4492) ] fix the failure to update cluster list dynamically when use eureka of the develop branch
+- [[#4535](https://github.com/apache/incubator-seata/pull/4535) ] fix FileSessionManagerTest fail
+- [[#4561](https://github.com/apache/incubator-seata/pull/4561) ] fix allSessions/findGlobalSessions may return null and cause npe
+- [[#4505](https://github.com/apache/incubator-seata/pull/4505) ] fix fastjson serialization of time data types
+- [[#4579](https://github.com/apache/incubator-seata/pull/4579) ] fix prepareUndoLogAll of MySQLInsertOrUpdateExecutor
+- [[#4005](https://github.com/apache/incubator-seata/pull/4005) ] fix PK constraint name isn't the same as the unique index name which is belong to PK
+- [[#4062](https://github.com/apache/incubator-seata/pull/4062) ] fix saga complex parameter deserialization problem
+- [[#4199](https://github.com/apache/incubator-seata/pull/4199) ] fix rpc tm request timeout
+- [[#4352](https://github.com/apache/incubator-seata/pull/4352) ] fix some problem of the sql parser
+- [[#4487](https://github.com/apache/incubator-seata/pull/4487) ] fix remove Pagination hideOnlyOnePage attribute
+- [[#4449](https://github.com/apache/incubator-seata/pull/4449) ] fix optimize redis limit and fix redis page bug
+- [[#4608](https://github.com/apache/incubator-seata/pull/4608) ] fix test case
+- [[#3110](https://github.com/apache/incubator-seata/pull/3110) ] fix the problem of unit test
+
+### optimize
+
+- [[#4163](https://github.com/apache/incubator-seata/pull/4163) ] improve CONTRIBUTING docs
+- [[#3678](https://github.com/apache/incubator-seata/pull/3678) ] supplement missing configuration and new version documents
+- [[#3654](https://github.com/apache/incubator-seata/pull/3654) ] fix typo,applicationContex -> applicationContext
+- [[#3615](https://github.com/apache/incubator-seata/pull/3615) ] asynchronous deletion after the transaction is committed
+- [[#3687](https://github.com/apache/incubator-seata/pull/3687) ] fix the case that could not retry acquire global lock
+- [[#3689](https://github.com/apache/incubator-seata/pull/3689) ] modify the attribute prefix in the file file.properties
+- [[#3528](https://github.com/apache/incubator-seata/pull/3528) ] optimize the memory footprint of redis mode
+- [[#3700](https://github.com/apache/incubator-seata/pull/3700) ] optimize the speed of buildLockKey
+- [[#3588](https://github.com/apache/incubator-seata/pull/3588) ] optimize the logic of datasource auto proxy
+- [[#3626](https://github.com/apache/incubator-seata/pull/3626) ] remove repeat change status
+- [[#3722](https://github.com/apache/incubator-seata/pull/3722) ] add the basic code of distributed lock
+- [[#3713](https://github.com/apache/incubator-seata/pull/3713) ] unified the default value of enableClientBatchSendRequest
+- [[#3120](https://github.com/apache/incubator-seata/pull/3120) ] optimize `Configuration` and add unit tests
+- [[#3735](https://github.com/apache/incubator-seata/pull/3735) ] do not load `LoadBalance` if not necessary
+- [[#3770](https://github.com/apache/incubator-seata/pull/3770) ] close the `Closeable` and optimize some code
+- [[#3627](https://github.com/apache/incubator-seata/pull/3627) ] use TreeMap instead of the LinkedHashMap in TableMeta to compatible high level MySQL
+- [[#3760](https://github.com/apache/incubator-seata/pull/3760) ] opt the logback's config of `seata-server`
+- [[#3765](https://github.com/apache/incubator-seata/pull/3765) ] Transfer the operation of adding configuration class from 'AutoConfiguration' to 'EnvironmentPostProcessor'
+- [[#3730](https://github.com/apache/incubator-seata/pull/3730) ] Refactoring the code of TCC mode
+- [[#3820](https://github.com/apache/incubator-seata/pull/3820) ] add column `action_name` to the `tcc_fence_log`
+- [[#3738](https://github.com/apache/incubator-seata/pull/3738) ] `JacksonUndoLogParser` supports to parsing `LocalDateTime`
+- [[#3794](https://github.com/apache/incubator-seata/pull/3794) ] optimize the packaging of `seata-server`
+- [[#3795](https://github.com/apache/incubator-seata/pull/3795) ] optimize zk registry lookup performance
+- [[#3840](https://github.com/apache/incubator-seata/pull/3840) ] optimiza `apm-skwalking` operation method to generate rules
+- [[#3834](https://github.com/apache/incubator-seata/pull/3834) ] optimize `seata-distribution` add `apm-seata-skywalking`
+- [[#3847](https://github.com/apache/incubator-seata/pull/3847) ] optimize ConcurrentHashMap.newKeySet replace ConcurrentSet
+- [[#3311](https://github.com/apache/incubator-seata/pull/3311) ] supports reading all configurations from a single Consul key
+- [[#3849](https://github.com/apache/incubator-seata/pull/3849) ] optimize string concat
+- [[#3890](https://github.com/apache/incubator-seata/pull/3890) ] optimize only the inserted fields are checked
+- [[#3895](https://github.com/apache/incubator-seata/pull/3895) ] optimize decode exception
+- [[#3898](https://github.com/apache/incubator-seata/pull/3898) ] add jib-maven-plugin
+- [[#3904](https://github.com/apache/incubator-seata/pull/3904) ] ehance metrics and fix seata-server UT not work
+- [[#3212](https://github.com/apache/incubator-seata/pull/3212) ] optimize recognize sql in limit and order by
+- [[#3905](https://github.com/apache/incubator-seata/pull/3905) ] optimize nacos-config.sh to support ash
+- [[#3935](https://github.com/apache/incubator-seata/pull/3935) ] optimize Send redis command at one time using pipeline
+- [[#3916](https://github.com/apache/incubator-seata/pull/3916) ] optimize determine whether the server in the register is alive
+- [[#3918](https://github.com/apache/incubator-seata/pull/3918) ] cache reflection results of the fields and methods
+- [[#3898](https://github.com/apache/incubator-seata/pull/3898) ] add jib-maven-plugin
+- [[#3907](https://github.com/apache/incubator-seata/pull/3907) ] optimize set server port
+- [[#3912](https://github.com/apache/incubator-seata/pull/3912) ] support config JVM param in env
+- [[#3939](https://github.com/apache/incubator-seata/pull/3939) ] use map instead of if else judge for more change in the future
+- [[#3955](https://github.com/apache/incubator-seata/pull/3955) ] add a start banner for seata
+- [[#3954](https://github.com/apache/incubator-seata/pull/3954) ] replace @Deprecated getOwnernName to getOwnerName in druid
+- [[#3981](https://github.com/apache/incubator-seata/pull/3981) ] optimize service port priority
+- [[#4013](https://github.com/apache/incubator-seata/pull/4013) ] optimize channel alive check
+- [[#3982](https://github.com/apache/incubator-seata/pull/3982) ] optimize readme doc and upgrade some dependencies
+- [[#3949](https://github.com/apache/incubator-seata/pull/3949) ] `nacos-config.py` support default parameters and optional input parameters
+- [[#3991](https://github.com/apache/incubator-seata/pull/3991) ] disable listening in the FileConfiguration center in Springboot
+- [[#3994](https://github.com/apache/incubator-seata/pull/3994) ] Optimize the mechanism of periodically deleting tasks in the `tcc_fence_log` table
+- [[#3327](https://github.com/apache/incubator-seata/pull/3327) ] supports reading all configurations from a single Etcd3 key
+- [[#4001](https://github.com/apache/incubator-seata/pull/4001) ] support to read YML configuration from Nacos, Zookeeper, Consul, Etcd3
+- [[#4017](https://github.com/apache/incubator-seata/pull/4017) ] optimize file configuration
+- [[#4018](https://github.com/apache/incubator-seata/pull/4018) ] optimize Apollo configuration
+- [[#4021](https://github.com/apache/incubator-seata/pull/4021) ] optimize Nacos、Consul、Zookeeper、Etcd3 configuration
+- [[#4034](https://github.com/apache/incubator-seata/pull/4034) ] optimize Nacos, Consul, Zookeeper and Etcd3 configuration Junit test Class
+- [[#4055](https://github.com/apache/incubator-seata/pull/4055) ] optimize NetUtil#getLocalAddress0
+- [[#4086](https://github.com/apache/incubator-seata/pull/4086) ] optimize lazily load branch transactions and task scheduling
+- [[#4056](https://github.com/apache/incubator-seata/pull/4056) ] optimize the DurationUtil
+- [[#4103](https://github.com/apache/incubator-seata/pull/4103) ] optimize AbstractLockManager#collectRowLocks logic
+- [[#3733](https://github.com/apache/incubator-seata/pull/3733) ] optimize acquire lock logic
+- [[#4144](https://github.com/apache/incubator-seata/pull/4144) ] support default configuration of tx-service-group
+- [[#4157](https://github.com/apache/incubator-seata/pull/4157) ] optimize client batch sending.
+- [[#4191](https://github.com/apache/incubator-seata/pull/4191) ] support rpc timeout can be customized.
+- [[#4216](https://github.com/apache/incubator-seata/pull/4216) ] no more attempt to clean undolog for none AT mode
+- [[#4176](https://github.com/apache/incubator-seata/pull/4176) ] use expire key instead hash when using redis as registry center.
+- [[#4196](https://github.com/apache/incubator-seata/pull/4196) ] tc batch response to client.
+- [[#4212](https://github.com/apache/incubator-seata/pull/4212) ] optimize the interface of the console
+- [[#4237](https://github.com/apache/incubator-seata/pull/4237) ] skip check lock when all the before image is empty
+- [[#4251](https://github.com/apache/incubator-seata/pull/4251) ] optimize partial code handling
+- [[#4262](https://github.com/apache/incubator-seata/pull/4262) ] optimize tcc module code handling
+- [[#4235](https://github.com/apache/incubator-seata/pull/4235) ] optimize instance saved in eureka
+- [[#4277](https://github.com/apache/incubator-seata/pull/4277) ] optimize acquire lock return fail-fast code in redis-pipeline mode.
+- [[#4284](https://github.com/apache/incubator-seata/pull/4284) ] support authentication of MSE-Nacos with ak/sk
+- [[#4299](https://github.com/apache/incubator-seata/pull/4299) ] optimize exceptions to make them friendly
+- [[#4300](https://github.com/apache/incubator-seata/pull/4300) ] optimize let DefaultCoordinator invoke NettyRemotingServer's close method,no longer closed by ServerRunner
+- [[#4270](https://github.com/apache/incubator-seata/pull/4270) ] improve the performance of global commit and global rollback, asynchronous branch transaction cleanup
+- [[#4307](https://github.com/apache/incubator-seata/pull/4307) ] when in TCC mode there is no need to delete global locks
+- [[#4303](https://github.com/apache/incubator-seata/pull/4303) ] `tcc_fence_log` table hanging log records are deleted asynchronously
+- [[#4328](https://github.com/apache/incubator-seata/pull/4328) ] upload configuration script support comments
+- [[#4305](https://github.com/apache/incubator-seata/pull/4305) ] optimize acquire global lock fail error log print on tc
+- [[#4336](https://github.com/apache/incubator-seata/pull/4336) ] add SQL exception prompt not supported by AT mode
+- [[#4359](https://github.com/apache/incubator-seata/pull/4359) ] support configuration metadata read from environment variables
+- [[#4247](https://github.com/apache/incubator-seata/pull/4247) ] add tests for `java17` and `springboot` in the `github/actions`
+- [[#4353](https://github.com/apache/incubator-seata/pull/4353) ] Slimming down for the `seata-all.jar`
+- [[#4393](https://github.com/apache/incubator-seata/pull/4393) ] skip reload for redis & db mode
+- [[#4400](https://github.com/apache/incubator-seata/pull/4400) ] asynchronous tasks handle global transactions in parallel
+- [[#4391](https://github.com/apache/incubator-seata/pull/4391) ] commit/rollback retry timeout event
+- [[#4409](https://github.com/apache/incubator-seata/pull/4409) ] add copyright header to test classes
+- [[#4282](https://github.com/apache/incubator-seata/pull/4282) ] optimize build UndoItem logic
+- [[#4407](https://github.com/apache/incubator-seata/pull/4407) ] file mode does not require lazy processing of sessions
+- [[#4436](https://github.com/apache/incubator-seata/pull/4436) ] optimize global session query in file mode
+- [[#4431](https://github.com/apache/incubator-seata/pull/4431) ] limit the number of queries in Redis storage mode
+- [[#4465](https://github.com/apache/incubator-seata/pull/4465) ] optimize client version transfer in tc batch response to client mode.
+- [[#4469](https://github.com/apache/incubator-seata/pull/4469) ] optimize the way to get configuration in DB mode of console
+- [[#4478](https://github.com/apache/incubator-seata/pull/4478) ] optimize Nacos config and naming properties
+- [[#4522](https://github.com/apache/incubator-seata/pull/4522) ] optimize GC parameters in JVM
+- [[#4517](https://github.com/apache/incubator-seata/pull/4517) ] enhance fail/timeout status metric and log level
+- [[#4451](https://github.com/apache/incubator-seata/pull/4451) ] filesessionmanager changed to singleton and optimized task thread pool processing
+- [[#4551](https://github.com/apache/incubator-seata/pull/4551) ] optimize metrics rt statistics
+- [[#4574](https://github.com/apache/incubator-seata/pull/4574) ] support accessKey/secretKey auto configuration
+- [[#4583](https://github.com/apache/incubator-seata/pull/4583) ] use HmacSHA256 instead of HmacSHA1 for ram signature
+- [[#4591](https://github.com/apache/incubator-seata/pull/4591) ] optimize the default value of the switch
+- [[#3780](https://github.com/apache/incubator-seata/pull/3780) ] optimize upgrade the Druid version
+- [[#3797](https://github.com/apache/incubator-seata/pull/3797) ] optimize support instance `BusinessActionContext` outside the TCC try method
+- [[#3909](https://github.com/apache/incubator-seata/pull/3909) ] optimize `collectRowLocks` method
+- [[#3763](https://github.com/apache/incubator-seata/pull/3763) ] optimize github actions
+- [[#4345](https://github.com/apache/incubator-seata/pull/4345) ] optimize fix the path of the package
+- [[#4346](https://github.com/apache/incubator-seata/pull/4346) ] optimize the log of the server and remove lombok
+- [[#4348](https://github.com/apache/incubator-seata/pull/4348) ] optimize Unified management the versions of maven-plugin
+- [[#4354](https://github.com/apache/incubator-seata/pull/4354) ] optimize the tests of `SAGA`
+- [[#4227](https://github.com/apache/incubator-seata/pull/4227) ] optimize the versions of the dependencies
+- [[#4403](https://github.com/apache/incubator-seata/pull/4403) ] optimize disable `SAGA` tests
+- [[#4453](https://github.com/apache/incubator-seata/pull/4453) ] optimize upgrade eureka-clients and xstream dependencies
+- [[#4481](https://github.com/apache/incubator-seata/pull/4481) ] optimize nacos config and naming properties
+- [[#4477](https://github.com/apache/incubator-seata/pull/4477) ] optimize debug log and fix typo
+- [[#4484](https://github.com/apache/incubator-seata/pull/4484) ]optimize the log of TM/RM register
+- [[#3874](https://github.com/apache/incubator-seata/pull/4484) ] optimize Add logo of registered enterprise,and Change image source to Alicdn
+- [[#4458](https://github.com/apache/incubator-seata/pull/4458) ] optimize fix the README.md of metrices module
+- [[#4482](https://github.com/apache/incubator-seata/pull/4482) ] optimize remove duplicated word
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [wangliang181230](https://github.com/wangliang181230)
+- [funky-eyes](https://github.com/funky-eyes)
+- [lvekee](https://github.com/lvekee)
+- [caohdgege](https://github.com/caohdgege)
+- [lightClouds917](https://github.com/lightClouds917)
+- [objcoding](https://github.com/objcoding)
+- [siyu](https://github.com/Pinocchio2018)
+- [GoodBoyCoder](https://github.com/GoodBoyCoder)
+- [pengten](https://github.com/pengten)
+- [Bughue](https://github.com/Bughue)
+- [doubleDimple](https://github.com/doubleDimple)
+- [zhaoyuguang](https://github.com/zhaoyuguang)
+- [liuqiufeng](https://github.com/liuqiufeng)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [lcmvs](https://github.com/lcmvs)
+- [onlinechild](https://github.com/onlinechild)
+- [xjlgod](https://github.com/xjlgod)
+- [h-zhi](https://github.com/h-zhi)
+- [tanzzj](https://github.com/tanzzj)
+- [miaoxueyu](https://github.com/miaoxueyu)
+- [selfishlover](https://github.com/selfishlover)
+- [tuwenlin](https://github.com/tuwenlin)
+- [dmego](https://github.com/dmego)
+- [xiaochangbai](https://github.com/xiaochangbai)
+- [Rubbernecker](https://github.com/Rubbernecker)
+- [ruanun](https://github.com/ruanun)
+- [huan415](https://github.com/huan415)
+- [drgnchan](https://github.com/drgnchan)
+- [cmonkey](https://github.com/cmonkey)
+- [13414850431](https://github.com/13414850431)
+- [ls9527](https://github.com/ls9527)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [spilledyear](https://github.com/spilledyear)
+- [kaka2code](https://github.com/kaka2code)
+- [iqinning](https://github.com/iqinning)
+- [yujianfei1986](https://github.com/yujianfei1986)
+- [elrond-g](https://github.com/elrond-g)
+- [jameslcj](https://github.com/jameslcj)
+- [zhouchuhang](https://github.com/zch0214)
+- [xujj](https://github.com/XBNGit)
+- [mengxzh](https://github.com/mengxzh)
+- [portman](https://github.com/iportman)
+- [anselleeyy](https://github.com/anselleeyy)
+- [wangyuewen](https://github.com/2858917634)
+- [imherewait](https://github.com/imherewait)
+- [wfnuser](https://github.com/wfnuser)
+- [zhixing](https://github.com/chenlei3641)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+</details>
+
+### 1.4.2 (2021-04-26)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.4.2.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.4.2/seata-server-1.4.2.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.4.2
+
+Seata 1.4.2 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#2933](https://github.com/apache/incubator-seata/pull/2933)] add antlr for mysql sqlparser
+- [[#3228](https://github.com/apache/incubator-seata/pull/3228)] support custom serialization plugin
+- [[#3172](https://github.com/apache/incubator-seata/pull/3172)] support undo_loge compression mode in AT
+- [[#3372](https://github.com/apache/incubator-seata/pull/3372)] Saga support customize whether update last retry log
+- [[#3411](https://github.com/apache/incubator-seata/pull/3411)] support seata-server thread pool parameters configuration
+- [[#3348](https://github.com/apache/incubator-seata/pull/3348)] support redis sentinel storage mode in TC
+- [[#2667](https://github.com/apache/incubator-seata/pull/2667)] support password decryption when using db and redis storage mode
+- [[#3427](https://github.com/apache/incubator-seata/pull/3427)] add distributed lock interface
+- [[#3443](https://github.com/apache/incubator-seata/pull/3443)] support send the `seata-server` log to `logstash` or `kafka`
+- [[#3486](https://github.com/apache/incubator-seata/pull/3486)] add transaction service group for metric
+- [[#3317](https://github.com/apache/incubator-seata/pull/3317)] support to obtain multiple configurations through a single node when using zookeeper as configuration center
+- [[#3516](https://github.com/apache/incubator-seata/pull/3516)] support acl-token when consul is used registry and configuration center
+- [[#3116](https://github.com/apache/incubator-seata/pull/3116)] support configuring apollo configService and cluster
+- [[#3468](https://github.com/apache/incubator-seata/pull/3468)] saga support loop execution on state
+- [[#3447](https://github.com/apache/incubator-seata/pull/3447)] support Transaction context printing in logging framework
+
+### bugfix
+
+- [[#3258](https://github.com/apache/incubator-seata/pull/3258)] fix AsyncWorker potential OOM problem
+- [[#3293](https://github.com/apache/incubator-seata/pull/3293)] fix configuration cache get value type mismatch exception
+- [[#3241](https://github.com/apache/incubator-seata/pull/3241)] forbidden use order by or limit in multi sql
+- [[#3406](https://github.com/apache/incubator-seata/pull/3406)] fix the value can not be push to nacos when special charset in config.txt
+- [[#3418](https://github.com/apache/incubator-seata/pull/3418)] fix getGeneratedKeys may get history pk
+- [[#3408](https://github.com/apache/incubator-seata/pull/3408)] fix the NPE problem of jar running mode when the third-dependency on separate packaging
+- [[#3431](https://github.com/apache/incubator-seata/pull/3431)] fix property bean may not be initialized when reading configuration
+- [[#3413](https://github.com/apache/incubator-seata/pull/3413)] fix the logic of rollback to savepoint and release to savepoint
+- [[#3367](https://github.com/apache/incubator-seata/pull/3367)] when the xa branch is rollback, it cannot be executed due to idle state
+- [[#3448](https://github.com/apache/incubator-seata/pull/3448)] reduce unnecessary competition and remove missing locks
+- [[#3451](https://github.com/apache/incubator-seata/pull/3451)] fix set auto-commit to true when local transactions are not being used. Failure to compete for a lock causes the global transaction to exit, invaliding the global row lock and dirty writing of the data.
+- [[#3481](https://github.com/apache/incubator-seata/pull/3481)] fix seata node refresh failure because of consul client throws exceptions
+- [[#3491](https://github.com/apache/incubator-seata/pull/3491)] fix typo in README.md
+- [[#3531](https://github.com/apache/incubator-seata/pull/3531)] fix the NPE of RedisTransactionStoreManager when get branch transactions
+- [[#3500](https://github.com/apache/incubator-seata/pull/3500)] fix oracle and postgreSQL can't query column info
+- [[#3560](https://github.com/apache/incubator-seata/pull/3560)] fix the problem that the asynchronous task of the transactions in the committing state has no time threshold and cannot recover the transaction
+- [[#3555](https://github.com/apache/incubator-seata/pull/3555)] do not call setBlob to invalid the jdbc exception
+- [[#3540](https://github.com/apache/incubator-seata/pull/3540)] fix server distribution missing files
+- [[#3597](https://github.com/apache/incubator-seata/pull/3597)] fix the possible NPE
+- [[#3568](https://github.com/apache/incubator-seata/pull/3568)] fix automatic datasource agent caused by ConcurrentHashMap.computeIfAbsent Deadlock problem
+- [[#3402](https://github.com/apache/incubator-seata/pull/3402)] fix the problem that the updated column cannot be resolved because the field name in the updated SQL contains the database name
+- [[#3464](https://github.com/apache/incubator-seata/pull/3464)] fix test case NPE and StackTraceLogger's log.
+- [[#3522](https://github.com/apache/incubator-seata/pull/3522)] fix register branch and store undolog when AT branch does not need compete lock
+- [[#3635](https://github.com/apache/incubator-seata/pull/3635)] fix pushing notification failed when the configuration changed in zookeeper
+- [[#3133](https://github.com/apache/incubator-seata/pull/3133)] fix the case that could not retry acquire global lock
+- [[#3156](https://github.com/apache/incubator-seata/pull/3156)] optimize the logic of SpringProxyUtils.findTargetClass
+
+### optimize
+
+- [[#3341](https://github.com/apache/incubator-seata/pull/3341)] optimize the format of the path to the specified configuration file
+- [[#3385](https://github.com/apache/incubator-seata/pull/3385)] optimize github action and fix unit test failure
+- [[#3175](https://github.com/apache/incubator-seata/pull/3175)] improve UUIDGenerator using "history time" version of snowflake algorithm
+- [[#3291](https://github.com/apache/incubator-seata/pull/3291)] mysql jdbc connect param
+- [[#3336](https://github.com/apache/incubator-seata/pull/3336)] support using System.getProperty to get netty config property
+- [[#3369](https://github.com/apache/incubator-seata/pull/3369)] add github action secrets env for dockerHub
+- [[#3343](https://github.com/apache/incubator-seata/pull/3343)] Migrate CI provider from Travis CI to Github Actions
+- [[#3397](https://github.com/apache/incubator-seata/pull/3397)] add the change records folder
+- [[#3303](https://github.com/apache/incubator-seata/pull/3303)] supports reading all configurations from a single Nacos dataId
+- [[#3380](https://github.com/apache/incubator-seata/pull/3380)] globalTransactionScanner listener optimize
+- [[#3123](https://github.com/apache/incubator-seata/pull/3123)] optimize the packing strategy of seata-server
+- [[#3415](https://github.com/apache/incubator-seata/pull/3415)] optimize maven clean plugin to clear the distribution directory
+- [[#3316](https://github.com/apache/incubator-seata/pull/3316)] optimize the property bean may not be initialized while reading config value
+- [[#3420](https://github.com/apache/incubator-seata/pull/3420)] optimize enumerated classes and add unit tests
+- [[#3533](https://github.com/apache/incubator-seata/pull/3533)] added interface to get current transaction role
+- [[#3436](https://github.com/apache/incubator-seata/pull/3436)] optimize typo in SQLType class
+- [[#3439](https://github.com/apache/incubator-seata/pull/3439)] adjust the order of springApplicationContextProvider so that it can be called before the XML bean
+- [[#3248](https://github.com/apache/incubator-seata/pull/3248)] optimize the config of load-balance migration to belong the client node
+- [[#3441](https://github.com/apache/incubator-seata/pull/3441)] optimize the auto-configuration processing of starter
+- [[#3466](https://github.com/apache/incubator-seata/pull/3466)] String comparison uses equalsIgnoreCase()
+- [[#3476](https://github.com/apache/incubator-seata/pull/3476)] support when the server parameter passed is hostname, it will be automatically converted to IP
+- [[#3236](https://github.com/apache/incubator-seata/pull/3236)] optimize the conditions for executing unlocking
+- [[#3485](https://github.com/apache/incubator-seata/pull/3485)] optimize useless codes in ConfigurationFactory
+- [[#3505](https://github.com/apache/incubator-seata/pull/3505)] optimize useless if judgments in the GlobalTransactionScanner class
+- [[#3544](https://github.com/apache/incubator-seata/pull/3544)] optimize the get pks by auto when auto generated keys is false
+- [[#3549](https://github.com/apache/incubator-seata/pull/3549)] unified the length of xid in different tables when using DB storage mode
+- [[#3551](https://github.com/apache/incubator-seata/pull/3551)] make RETRY_DEAD_THRESHOLD bigger and configurable
+- [[#3589](https://github.com/apache/incubator-seata/pull/3589)] Changed exception check by JUnit API usage
+- [[#3601](https://github.com/apache/incubator-seata/pull/3601)] make `LoadBalanceProperties` compatible with `spring-boot:2.x` and above
+- [[#3513](https://github.com/apache/incubator-seata/pull/3513)] Saga SpringBeanService invoker support switch json parser
+- [[#3318](https://github.com/apache/incubator-seata/pull/3318)] make CLIENT_TABLE_META_CHECKER_INTERVAL configurable
+- [[#3371](https://github.com/apache/incubator-seata/pull/3371)] add applicationId for metric
+- [[#3459](https://github.com/apache/incubator-seata/pull/3459)] remove duplicate validAddress code
+- [[#3215](https://github.com/apache/incubator-seata/pull/3215)] opt the reload during startup in file mode
+- [[#3631](https://github.com/apache/incubator-seata/pull/3631)] optimize nacos-config.py parameter
+- [[#3638](https://github.com/apache/incubator-seata/pull/3638)] optimize the error when use update or delete with join in sql
+- [[#3523](https://github.com/apache/incubator-seata/pull/3523)] optimize release savepoint when use oracle
+- [[#3458](https://github.com/apache/incubator-seata/pull/3458)] reversion the deleted md
+- [[#3574](https://github.com/apache/incubator-seata/pull/3574)] repair Spelling errors in comments in EventBus.java files
+- [[#3573](https://github.com/apache/incubator-seata/pull/3573)] fix designer directory path in README.md
+- [[#3662](https://github.com/apache/incubator-seata/pull/3662)] update gpg key
+- [[#3664](https://github.com/apache/incubator-seata/pull/3664)] optimize some javadocs
+- [[#3637](https://github.com/apache/incubator-seata/pull/3637)] register the participating companies and pull request information
+
+### test
+
+- [[#3381](https://github.com/apache/incubator-seata/pull/3381)] test case for tmClient
+- [[#3607](https://github.com/apache/incubator-seata/pull/3607)] fixed bugs in EventBus unit tests
+- [[#3579](https://github.com/apache/incubator-seata/pull/3579)] add test case for StringFormatUtils
+- [[#3365](https://github.com/apache/incubator-seata/pull/3365)] optimize ParameterParserTest test case failed
+- [[#3359](https://github.com/apache/incubator-seata/pull/3359)] remove unused test case
+- [[#3578](https://github.com/apache/incubator-seata/pull/3578)] fix UnfinishedStubbing Exception in unit test case
+- [[#3383](https://github.com/apache/incubator-seata/pull/3383)] optimize StatementProxyTest unit test
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [caohdgege](https://github.com/caohdgege)
+- [funky-eyes](https://github.com/funky-eyes)
+- [wangliang181230](https://github.com/wangliang181230)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [selfishlover](https://github.com/selfishlover)
+- [l8189352](https://github.com/l81893521)
+- [Rubbernecker](https://github.com/Rubbernecker)
+- [lj2018110133](https://github.com/lj2018110133)
+- [github-ganyu](https://github.com/github-ganyu)
+- [dmego](https://github.com/dmego)
+- [spilledyear](https://github.com/spilledyear)
+- [hoverruan](https://github.com/hoverruan)
+- [anselleeyy](https://github.com/anselleeyy)
+- [Ifdevil](https://github.com/Ifdevil)
+- [lvxianzheng](https://github.com/lvxianzheng)
+- [MentosL](https://github.com/MentosL)
+- [lian88jian](https://github.com/lian88jian)
+- [litianyu1992](https://github.com/litianyu1992)
+- [xyz327](https://github.com/xyz327)
+- [13414850431](https://github.com/13414850431)
+- [xuande](https://github.com/xuande)
+- [tanggen](https://github.com/tanggen)
+- [eas5](https://github.com/eas5)
+- [nature80](https://github.com/nature80)
+- [ls9527](https://github.com/ls9527)
+- [drgnchan](https://github.com/drgnchan)
+- [imyangyong](https://github.com/imyangyong)
+- [sunlggggg](https://github.com/sunlggggg)
+- [long187](https://github.com/long187)
+- [h-zhi](https://github.com/h-zhi)
+- [StellaiYang](https://github.com/StellaiYang)
+- [slinpq](https://github.com/slinpq)
+- [sustly](https://github.com/sustly)
+- [cznc](https://github.com/cznc)
+- [squallliu](https://github.com/squallliu)
+- [81519434](https://github.com/81519434)
+- [luoxn28](https://github.com/luoxn28)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+</details>
+
+### 1.4.1 (2021-02-08)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.4.1.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.4.1/seata-server-1.4.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.4.1
+
+Seata 1.4.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#3238](https://github.com/apache/incubator-seata/pull/3238)] add deflater support for seata compressor
+
+### bugfix
+
+- [[#2879](https://github.com/apache/incubator-seata/pull/2879)] fix deadlock during springboot project startup
+- [[#3296](https://github.com/apache/incubator-seata/pull/3296)] when mixed use of AT and TCC, AT branchs is not deleted
+- [[#3254](https://github.com/apache/incubator-seata/pull/3254)] clear the listener map of zk registry
+- [[#3309](https://github.com/apache/incubator-seata/pull/3309)] Saga statemachine definition json cannot enable jackson parser, and when no choice matched in choice state will throw NPE
+- [[#3287](https://github.com/apache/incubator-seata/pull/3287)] throw exception when update pk
+- [[#3323](https://github.com/apache/incubator-seata/pull/3323)] clean root context when state machine inst record failed
+- [[#3281](https://github.com/apache/incubator-seata/pull/3281)] fix wrong status when exception
+- [[#2949](https://github.com/apache/incubator-seata/pull/2949)] fix throw NPE when get the state list
+- [[#3351](https://github.com/apache/incubator-seata/pull/3351)] fix throw IllegalArgumentException when use hystrix when using SCA 2.2.3.RELEASE and below
+- [[#3349](https://github.com/apache/incubator-seata/pull/3349)] the problem test case
+- [[#3325](https://github.com/apache/incubator-seata/pull/3325)] fix retry commit unsuccess when record subMachineInst failed
+- [[#3357](https://github.com/apache/incubator-seata/pull/3357)] fix deploy staging rule check failed
+
+### optimize
+
+- [[#3188](https://github.com/apache/incubator-seata/pull/3188)] Local variable 'map' is redundant and check queue offer return value
+- [[#3247](https://github.com/apache/incubator-seata/pull/3247)] change client.log.exceptionRate to log.exceptionRate
+- [[#3260](https://github.com/apache/incubator-seata/pull/3260)] use PriorityQueue to simply ShutdownHook
+- [[#3319](https://github.com/apache/incubator-seata/pull/3319)] delete unnecessary @Sharable
+- [[#3313](https://github.com/apache/incubator-seata/pull/3313)] replace StringBuffer to StringBuilder
+- [[#3335](https://github.com/apache/incubator-seata/pull/3335)] modify TransactionPropagationInterceptor name
+- [[#3310](https://github.com/apache/incubator-seata/pull/3310)] enable NamedThreadFactory to get ThreadGroup from the SecurityManager or Current thread
+- [[#3320](https://github.com/apache/incubator-seata/pull/3320)] load balance strategy use constants
+- [[#3345](https://github.com/apache/incubator-seata/pull/3345)] adjust GlobalLockTemplateTest
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [dongzl](https://github.com/dongzl)
+- [wangliang181230](https://github.com/wangliang181230)
+- [ls9527](https://github.com/ls9527)
+- [long187](https://github.com/long187)
+- [81519434](https://github.com/81519434)
+- [anselleeyy](https://github.com/anselleeyy)
+- [funky-eyes](https://github.com/funky-eyes)
+- [selfishlover](https://github.com/selfishlover)
+- [suichen](https://github.com/suichen)
+- [h-zhi](https://github.com/h-zhi)
+- [jxlgzwh](https://github.com/jxlgzwh)
+- [LiWenGu](https://github.com/LiWenGu)
+
+Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.4.0 (2020-10-30)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.4.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.4.0/seata-server-1.4.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.4.0
+
+Seata 1.4.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#2380](https://github.com/apache/incubator-seata/pull/2380)] support yml configuration
+- [[#3191](https://github.com/apache/incubator-seata/pull/3191)] support jdbc type nclob
+- [[#2676](https://github.com/apache/incubator-seata/pull/2676)] support least active load balance
+- [[#3198](https://github.com/apache/incubator-seata/pull/3198)] spring boot support for custom config and registry type
+- [[#2806](https://github.com/apache/incubator-seata/pull/2806)] support configuring default global transaction timeoutMillis
+- [[#2941](https://github.com/apache/incubator-seata/pull/2941)] add apollo secret key configuration
+- [[#2080](https://github.com/apache/incubator-seata/pull/2080)] support ConsistentHashLoadBalance
+- [[#2950](https://github.com/apache/incubator-seata/pull/2950)] support the reentrant lock in redis module
+- [[#2913](https://github.com/apache/incubator-seata/pull/2913)] The data source proxy mode can be selected as AT or XA
+- [[#2856](https://github.com/apache/incubator-seata/pull/2856)] support for undoLog using Fst serialization
+- [[#3076](https://github.com/apache/incubator-seata/pull/3076)] check lock in TC when use @GlobalLock
+- [[#2825](https://github.com/apache/incubator-seata/pull/2825)] support send authentication msg
+- [[#2962](https://github.com/apache/incubator-seata/pull/2962)] @GlobalTransactional and @GlobalLock can support customize lock retry config
+
+### bugfix
+
+- [[#3214](https://github.com/apache/incubator-seata/pull/3214)] fix the 'RootContext.DEFAULT_BRANCH_TYPE' is wrong in some cases
+- [[#3129](https://github.com/apache/incubator-seata/pull/3129)] forbidding execute SQL which update pk value
+- [[#3205](https://github.com/apache/incubator-seata/pull/3205)] fix can not get boolean value in configuration
+- [[#3170](https://github.com/apache/incubator-seata/pull/3170)] the disposables tree set won't accept another Disposable with the same priority
+- [[#3180](https://github.com/apache/incubator-seata/pull/3180)] serializer fst package name error
+- [[#3178](https://github.com/apache/incubator-seata/pull/3178)] remove next line to space
+- [[#2929](https://github.com/apache/incubator-seata/pull/2929)] fix the application was configured to degrade at startup and can't be dynamically switch to upgraded
+- [[#3050](https://github.com/apache/incubator-seata/pull/3050)] fix fetch before images when delete and update statements
+- [[#2935](https://github.com/apache/incubator-seata/pull/2935)] fix saga designer bug that the property box does not switch when switching nodes
+- [[#3140](https://github.com/apache/incubator-seata/pull/3140)] fix Propagation.REQUIRES_NEW and add some comments
+- [[#3130](https://github.com/apache/incubator-seata/pull/3130)] fix some problems in the automatic data source proxy
+- [[#3148](https://github.com/apache/incubator-seata/pull/3148)] the redis lock key and the session key has conflict
+- [[#3136](https://github.com/apache/incubator-seata/pull/3136)] fix the redis pipeline
+- [[#2551](https://github.com/apache/incubator-seata/pull/2551)] Saga can't be used when the dataSource is AT's dataSourceProxy
+- [[#3073](https://github.com/apache/incubator-seata/pull/3073)] do not proxy connections without an xid
+- [[#3074](https://github.com/apache/incubator-seata/pull/3074)] There is no need to retry if the XA schema cannot find the XID
+- [[#3097](https://github.com/apache/incubator-seata/pull/3097)] fix HttpAutoConfiguration always instantiation in springboot env
+- [[#3071](https://github.com/apache/incubator-seata/pull/3071)] part of the connection is not unpacked
+- [[#3056](https://github.com/apache/incubator-seata/pull/3056)] fixed a bug that after branch deletion, there are still remaining branch lock
+- [[#3025](https://github.com/apache/incubator-seata/pull/3025)] fix the wrong package path
+- [[#3031](https://github.com/apache/incubator-seata/pull/3031)] redis locker delete lock incomplete
+- [[#2973](https://github.com/apache/incubator-seata/pull/2973)] fix oracle database in field size over 1000
+- [[#2986](https://github.com/apache/incubator-seata/pull/2986)] fix checkstyle plugin can't exclude single file
+- [[#2910](https://github.com/apache/incubator-seata/pull/2910)] fix error registry type comment
+- [[#2914](https://github.com/apache/incubator-seata/pull/2914)] fix branchType not cleaned when consumer is in TCC mode
+- [[#2926](https://github.com/apache/incubator-seata/pull/2926)] fastjson write undo log not parser
+- [[#2897](https://github.com/apache/incubator-seata/pull/2897)] fix jedis unlock fail
+- [[#2918](https://github.com/apache/incubator-seata/pull/2918)] fix the isolation problem when rollback in AT mode
+- [[#2972](https://github.com/apache/incubator-seata/pull/2972)] UUIDGenerator generates duplicated id
+- [[#2932](https://github.com/apache/incubator-seata/pull/2932)] nacos-config.py script could not run with namespace
+- [[#2900](https://github.com/apache/incubator-seata/pull/2900)] ColumnUtils add escape with scheme
+- [[#2904](https://github.com/apache/incubator-seata/pull/2904)] fix getConfig cache value is 'null'
+- [[#2890](https://github.com/apache/incubator-seata/pull/2890)] fix misspelling in statelang examples
+- [[#3040](https://github.com/apache/incubator-seata/pull/3040)] fix repeated commit when autocommit is false
+- [[#3230](https://github.com/apache/incubator-seata/pull/3230)] fix use @EnableAutoDataSourceProxy startup failed
+- [[#2979](https://github.com/apache/incubator-seata/pull/2979)] columns of resultset integrated with sharingjdbc need to be lowercase
+- [[#3233](https://github.com/apache/incubator-seata/pull/3233)] fix Collections NPE
+- [[#3242](https://github.com/apache/incubator-seata/pull/3242)] fix batch sql getTableMeta error
+- [[#3246](https://github.com/apache/incubator-seata/pull/3246)] fix the exception when limit condition contains VariantRefExpr
+
+### optimize
+
+- [[#3062](https://github.com/apache/incubator-seata/pull/3062)] refactor the redis session store
+- [[#3201](https://github.com/apache/incubator-seata/pull/3201)] optimize the wrong stack not fully display
+- [[#3117](https://github.com/apache/incubator-seata/pull/3117)] make log more clearly and remove the useless code
+- [[#3134](https://github.com/apache/incubator-seata/pull/3134)] optimize codes related to Map and List
+- [[#3195](https://github.com/apache/incubator-seata/pull/3195)] optimize XID related codes
+- [[#3200](https://github.com/apache/incubator-seata/pull/3200)] optimize rpc message when message was substring
+- [[#3186](https://github.com/apache/incubator-seata/pull/3186)] remove duplicated in string utils
+- [[#3162](https://github.com/apache/incubator-seata/pull/3162)] remove repeated conditional tests
+- [[#2969](https://github.com/apache/incubator-seata/pull/2969)] upgrade to druid 1.1.23
+- [[#3141](https://github.com/apache/incubator-seata/pull/3141)] upgrade nacos and FastJSON dependencies
+- [[#3118](https://github.com/apache/incubator-seata/pull/3118)] add more configuration tips in additional-spring-configuration-metadata.json
+- [[#2597](https://github.com/apache/incubator-seata/pull/2597)] judging xid status to avoid repeated processing
+- [[#3102](https://github.com/apache/incubator-seata/pull/3102)] optimize ContextCore, can be set 'Object' value
+- [[#3016](https://github.com/apache/incubator-seata/pull/3016)] refactor the redis lock string to hash
+- [[#3046](https://github.com/apache/incubator-seata/pull/3046)] remove unused code in serializer factory
+- [[#3053](https://github.com/apache/incubator-seata/pull/3053)] jedis pool adds maxtotal configuration
+- [[#3012](https://github.com/apache/incubator-seata/pull/3012)] remove set port repeatedly
+- [[#2978](https://github.com/apache/incubator-seata/pull/2978)] optimize globalCommit for mixed use of AT and TCC
+- [[#2967](https://github.com/apache/incubator-seata/pull/2967)] replace with lambda
+- [[#2968](https://github.com/apache/incubator-seata/pull/2968)] ensure that the register message is sent after RM client initialization
+- [[#2945](https://github.com/apache/incubator-seata/pull/2945)] optimize async commit and reduce one update
+- [[#2952](https://github.com/apache/incubator-seata/pull/2952)] optimize additional-spring-configuration-metadata.json
+- [[#2920](https://github.com/apache/incubator-seata/pull/2920)] optimize some grammatical errors
+- [[#2906](https://github.com/apache/incubator-seata/pull/2906)] added some configuration items to keep consistent with official documents
+- [[#3222](https://github.com/apache/incubator-seata/pull/3222)] optimize fileListener to decrease cpu time usage
+- [[#2843](https://github.com/apache/incubator-seata/pull/2843)] removed Reloadable from the redis/db SessionManager
+- [[#3209](https://github.com/apache/incubator-seata/pull/3209)] add using company logos
+
+  Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [wangliang181230](https://github.com/wangliang181230)
+- [funky-eyes](https://github.com/funky-eyes)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [l81893521](https://github.com/l81893521)
+- [lightClouds917](https://github.com/lightClouds917)
+- [caohdgege](https://github.com/caohdgege)
+- [yujianfei1986](https://github.com/yujianfei1986)
+- [ph3636](https://github.com/ph3636)
+- [PeineLiang](https://github.com/PeineLiang)
+- [heyaping388](https://github.com/heyaping388)
+- [guang384](https://github.com/guang384)
+- [zdrjson](https://github.com/zdrjson)
+- [ITAlexSun](https://github.com/ITAlexSun)
+- [dongzl](https://github.com/dongzl)
+- [81519434](https://github.com/81519434)
+- [wangwei-yin](https://github.com/wangwei-yin)
+- [jujinghao](https://github.com/jujinghao)
+- [JRial95](https://github.com/JRial95)
+- [mxszs1](https://github.com/mxszs1)
+- [RayneHwang](https://github.com/RayneHwang)
+- [everyhook1](https://github.com/everyhook1)
+- [li469791221](https://github.com/li469791221)
+- [luorenjin](https://github.com/luorenjin)
+- [yangxb2010000](https://github.com/yangxb2010000)
+- [selfishlover](https://github.com/selfishlover)
+- [yyjgit66](https://github.com/yyjgit66)
+
+  Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.3.0 (2020-07-14)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.3.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.3.0/seata-server-1.3.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.3.0
+
+Seata 1.3.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#2398](https://github.com/apache/incubator-seata/pull/2398)] support multi pk for MySQL
+- [[#2484](https://github.com/apache/incubator-seata/pull/2484)] store mode support redis
+- [[#2817](https://github.com/apache/incubator-seata/pull/2817)] Saga StateMachine engine and Designer support Groovy Script Task
+- [[#2646](https://github.com/apache/incubator-seata/pull/2646)] server support for HikariCP
+- [[#2253](https://github.com/apache/incubator-seata/pull/2253)] support for dynamic upgrade and downgrade
+- [[#2565](https://github.com/apache/incubator-seata/pull/2565)] support for transaction annotations on classes
+- [[#2510](https://github.com/apache/incubator-seata/pull/2510)] support LZ4 compressor
+- [[#2622](https://github.com/apache/incubator-seata/pull/2622)] support version valid check
+- [[#2658](https://github.com/apache/incubator-seata/pull/2658)] dataSources support different permissions of Oracle users
+- [[#2620](https://github.com/apache/incubator-seata/pull/2620)] support group configuration in Nacos registry
+- [[#2699](https://github.com/apache/incubator-seata/pull/2699)] compatible with ACM
+- [[#2509](https://github.com/apache/incubator-seata/pull/2509)] support for undo full data columns on update operate
+- [[#2584](https://github.com/apache/incubator-seata/pull/2584)] StateHandlerInterceptor and StateRouterInterceptor support SPI
+- [[#2808](https://github.com/apache/incubator-seata/pull/2808)] server check auth support SPI
+- [[#2616](https://github.com/apache/incubator-seata/pull/2616)] TCC adapter for Dubbo And Sofa reference annotation
+- [[#2831](https://github.com/apache/incubator-seata/pull/2831)] Saga support jackson json parser
+- [[#2554](https://github.com/apache/incubator-seata/pull/2554)] support zk serializer
+- [[#2708](https://github.com/apache/incubator-seata/pull/2708)] support jdbc type array, datalink etc
+- [[#2412](https://github.com/apache/incubator-seata/pull/2412)] xid generation strategy support snowflake
+- [[#2611](https://github.com/apache/incubator-seata/pull/2611)] support the cache of configuration values
+
+### bugfix
+
+- [[#2893](https://github.com/apache/incubator-seata/pull/2893)] fix get table meta failed in postgresql
+- [[#2887](https://github.com/apache/incubator-seata/pull/2887)] fix rm client receive response logic
+- [[#2610](https://github.com/apache/incubator-seata/pull/2610)] nacos-script adapt to Nacos 1.2 on permission control
+- [[#2588](https://github.com/apache/incubator-seata/pull/2588)] fix when the check_style does not pass, no detail information output
+- [[#2543](https://github.com/apache/incubator-seata/pull/2543)] fix ApplicationKeeper ShutdownHook signal invalid.
+- [[#2598](https://github.com/apache/incubator-seata/pull/2598)] fix unable to register Nacos
+- [[#2618](https://github.com/apache/incubator-seata/pull/2618)] fix could not create folder in zookeeper
+- [[#2628](https://github.com/apache/incubator-seata/pull/2628)] fix get tableName and alias error in mysql delete
+- [[#2639](https://github.com/apache/incubator-seata/pull/2639)] fix Apollo configuration load fail due to camel style
+- [[#2629](https://github.com/apache/incubator-seata/pull/2629)] fix duplicated resource id with different currentSchema in PostgreSQL
+- [[#2659](https://github.com/apache/incubator-seata/pull/2659)] fix mysql insert use select last_insert_id is undo_log id value
+- [[#2670](https://github.com/apache/incubator-seata/pull/2670)] fix dataSource initialize more times
+- [[#2617](https://github.com/apache/incubator-seata/pull/2617)] fix incorrect getAnnotation about class and method
+- [[#2603](https://github.com/apache/incubator-seata/pull/2603)] fix can't get generated keys value.
+- [[#2725](https://github.com/apache/incubator-seata/pull/2725)] fix other expression before insert row primary key.
+- [[#2698](https://github.com/apache/incubator-seata/pull/2698)] fix nested GlobalLock unbind prematurely
+- [[#2755](https://github.com/apache/incubator-seata/pull/2755)] fix not return value when branchCommit and branchRollback throw exception
+- [[#2777](https://github.com/apache/incubator-seata/pull/2777)] fix can't rollback when set rollback retry count was zero.
+- [[#2812](https://github.com/apache/incubator-seata/pull/2812)] fix get PostgreSQL tableMeta error when using shardingSphere
+- [[#2760](https://github.com/apache/incubator-seata/pull/2760)] fix TM rollback fail throw the seata exception, rollback retrying throw NPE
+- [[#2837](https://github.com/apache/incubator-seata/pull/2837)] fix wrong constant used in the saga SubStateMachineHandler
+- [[#2839](https://github.com/apache/incubator-seata/pull/2839)] fix business exception is lost when compensation succeed in saga mode
+- [[#2650](https://github.com/apache/incubator-seata/pull/2650)] fix TCC and Saga branches will also parse SQL in AbstractConnectionProxy
+- [[#2850](https://github.com/apache/incubator-seata/pull/2850)] Fix Saga designer rounded polylines cause page crashes
+- [[#2868](https://github.com/apache/incubator-seata/pull/2868)] fix can't find AsyncEventBus dependency
+- [[#2871](https://github.com/apache/incubator-seata/pull/2871)] fix get tableMeta failed when table name like 'schame'.'table'
+- [[#2685](https://github.com/apache/incubator-seata/pull/2685)] fix oracle insert sql use sysdate error.
+- [[#2872](https://github.com/apache/incubator-seata/pull/2872)] fix missing escape char in the primary key for the undo sql
+- [[#2875](https://github.com/apache/incubator-seata/pull/2875)] fix ColumnUtils delEscape with scheme error
+
+### optimize
+
+- [[#2573](https://github.com/apache/incubator-seata/pull/2573)] replace Random with ThreadLocalRandom in RandomLoadBalance
+- [[#2540](https://github.com/apache/incubator-seata/pull/2540)] refactor rpc request method and rpc interface
+- [[#2642](https://github.com/apache/incubator-seata/pull/2642)] optimize unsafe double-checked locking in SofaRegistryServiceImpl
+- [[#2561](https://github.com/apache/incubator-seata/pull/2561)] keep the same logic of get tableMeta
+- [[#2591](https://github.com/apache/incubator-seata/pull/2591)] support the default timeout for zookeeper register
+- [[#2601](https://github.com/apache/incubator-seata/pull/2601)] repackage spring-boot-starter
+- [[#2415](https://github.com/apache/incubator-seata/pull/2415)] distinguish database behavior according to the branch type
+- [[#2647](https://github.com/apache/incubator-seata/pull/2647)] remove the unused variable
+- [[#2649](https://github.com/apache/incubator-seata/pull/2649)] optimize get tableMeta
+- [[#2652](https://github.com/apache/incubator-seata/pull/2652)] consul supports custom port
+- [[#2660](https://github.com/apache/incubator-seata/pull/2660)] modify IdWorker position to make it reasonable
+- [[#2625](https://github.com/apache/incubator-seata/pull/2625)] polish testing code, replace with `Mockito.verify`
+- [[#2666](https://github.com/apache/incubator-seata/pull/2666)] add using users organization logos
+- [[#2680](https://github.com/apache/incubator-seata/pull/2680)] Change GlobalTransactionalInterceptor to singleton
+- [[#2683](https://github.com/apache/incubator-seata/pull/2683)] optimize TccActionInterceptor log print
+- [[#2477](https://github.com/apache/incubator-seata/pull/2477)] refactoring client request processing logic.
+- [[#2280](https://github.com/apache/incubator-seata/pull/2280)] refactor InsertExecutor
+- [[#2044](https://github.com/apache/incubator-seata/pull/2044)] optimize ColumnUtils.addEscape method performance
+- [[#2730](https://github.com/apache/incubator-seata/pull/2730)] optimize get config type from configuration
+- [[#2723](https://github.com/apache/incubator-seata/pull/2723)] optimize get tableMeta in postgreSql
+- [[#2734](https://github.com/apache/incubator-seata/pull/2734)] change postgreSql driver scope to provide
+- [[#2749](https://github.com/apache/incubator-seata/pull/2749)] optimize logger class misWrite
+- [[#2751](https://github.com/apache/incubator-seata/pull/2751)] copy jdbc driver to image
+- [[#2759](https://github.com/apache/incubator-seata/pull/2759)] optimized the generation rules of thread name factory
+- [[#2607](https://github.com/apache/incubator-seata/pull/2607)] support insert pkValue support check
+- [[#2765](https://github.com/apache/incubator-seata/pull/2765)] optimize the processing logic of XA's RM for unsupported transaction resources.
+- [[#2771](https://github.com/apache/incubator-seata/pull/2771)] disable unstable unit tests
+- [[#2779](https://github.com/apache/incubator-seata/pull/2779)] CollectionUtils.decodeMap method variables ConcurrentHashMap refact to HashMap
+- [[#2486](https://github.com/apache/incubator-seata/pull/2486)] refactor server handle request process logic from client
+- [[#2770](https://github.com/apache/incubator-seata/pull/2770)] TCC two phase method return type supports void
+- [[#2788](https://github.com/apache/incubator-seata/pull/2788)] optimize server log pattern and support for colored log
+- [[#2816](https://github.com/apache/incubator-seata/pull/2816)] optimize create clazz instance
+- [[#2787](https://github.com/apache/incubator-seata/pull/2787)] modify workerId generation method
+- [[#2776](https://github.com/apache/incubator-seata/pull/2776)] optimize paramsPlaceHolder generate by StringUtils.repeat()
+- [[#2799](https://github.com/apache/incubator-seata/pull/2799)] code opt format
+- [[#2829](https://github.com/apache/incubator-seata/pull/2829)] downgrade check unlock and asynchronous
+- [[#2842](https://github.com/apache/incubator-seata/pull/2842)] code opt format about the sqls and typos
+- [[#2242](https://github.com/apache/incubator-seata/pull/2242)] optimize PreparedStatementProxy initialization logic
+- [[#2613](https://github.com/apache/incubator-seata/pull/2613)] fix typo and some coding guidelines
+
+  Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [funky-eyes](https://github.com/funky-eyes)
+- [wangliang181230](https://github.com/wangliang181230)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [l81893521](https://github.com/l81893521)
+- [objcoding](https://github.com/objcoding)
+- [long187](https://github.com/long187)
+- [CharmingRabbit](https://github.com/CharmingRabbit)
+- [diguage](https://github.com/diguage)
+- [helloworlde](https://github.com/helloworlde)
+- [chenxi-null](https://github.com/chenxi-null)
+- [ph3636](https://github.com/ph3636)
+- [xianlaioy](https://github.com/xianlaioy)
+- [qq925716471](https://github.com/qq925716471)
+- [horoc](https://github.com/horoc)
+- [XavierChengZW](https://github.com/XavierChengZW)
+- [anic](https://github.com/anic)
+- [fxtahe](https://github.com/fxtahe)
+- [wangwengeek](https://github.com/wangwengeek)
+- [yangfuhai](https://github.com/yangfuhai)
+- [PeineLiang](https://github.com/PeineLiang)
+- [f654c32](https://github.com/f654c32)
+- [dagmom](https://github.com/dagmom)
+- [caohdgege](https://github.com/caohdgege)
+- [zjinlei](https://github.com/zjinlei)
+- [yyjgit66](https://github.com/yyjgit66)
+- [lj2018110133](https://github.com/lj2018110133)
+- [wxbty](https://github.com/wxbty)
+- [hsoftxl](https://github.com/hsoftxl)
+- [q294881866](https://github.com/q294881866)
+- [81519434](https://github.com/81519434)
+
+  Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.2.0 (2020-04-20)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.2.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.2.0/seata-server-1.2.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.2.0
+
+Seata 1.2.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#2381](https://github.com/apache/incubator-seata/pull/2381)] support XA transaction mode
+- [[#2206](https://github.com/apache/incubator-seata/pull/2206)] support REQUIRED、REQUIRES_NEW、SUPPORTS and NOT_SUPPORTED transaction propagation
+- [[#2112](https://github.com/apache/incubator-seata/pull/2112)] support batch update and delete with multiple sql
+- [[#2275](https://github.com/apache/incubator-seata/pull/2275)] support hsf on TCC transaction mode
+- [[#2108](https://github.com/apache/incubator-seata/pull/2108)] support zip bzip2 7z compressor
+- [[#2328](https://github.com/apache/incubator-seata/pull/2328)] support for isolated loading of mysql 5.x and 8.x jdbc drivers classes
+- [[#2367](https://github.com/apache/incubator-seata/pull/2367)] add permission configuration support for Nacos 1.2
+- [[#2359](https://github.com/apache/incubator-seata/pull/2359)] support propagation.never, propagation.mandatory and transaction suspend and resume api
+- [[#2418](https://github.com/apache/incubator-seata/pull/2418)] support fst serialization
+- [[#2135](https://github.com/apache/incubator-seata/pull/2135)] support SPI scope
+- [[#2370](https://github.com/apache/incubator-seata/pull/2370)] support failureHandler implement can be read from the container
+- [[#2481](https://github.com/apache/incubator-seata/pull/2481)] support the max wait configuration for db
+- [[#2379](https://github.com/apache/incubator-seata/pull/2379)] support custom service name when registering with Nacos
+- [[#2308](https://github.com/apache/incubator-seata/pull/2308)] add switch to control whether to register branch on Saga transaction mode
+- [[#2301](https://github.com/apache/incubator-seata/pull/2301)] support default expr and nextval for postgresql
+
+### bugfix
+
+- [[#2575](https://github.com/apache/incubator-seata/pull/2575)] fix executeBatch can not get targetSql in Statement mode
+- [[#2283](https://github.com/apache/incubator-seata/pull/2283)] fix oracle get tableMeta fail
+- [[#2312](https://github.com/apache/incubator-seata/pull/2312)] fix the judgement of configuration condition
+- [[#2309](https://github.com/apache/incubator-seata/pull/2309)] fix timestamp deserialize lost nano
+- [[#2292](https://github.com/apache/incubator-seata/pull/2292)] fix some configuration not converted to camel style
+- [[#2306](https://github.com/apache/incubator-seata/pull/2306)] fix deprecated maven prerequisites
+- [[#2287](https://github.com/apache/incubator-seata/pull/2287)] fix connection context can't be remove when global lock retry
+- [[#2361](https://github.com/apache/incubator-seata/pull/2361)] fix the error configuration name
+- [[#2333](https://github.com/apache/incubator-seata/pull/2333)] fix wrong exception information when rollback fails due to dirty data
+- [[#2390](https://github.com/apache/incubator-seata/pull/2390)] fix configuration item containing spaces
+- [[#2408](https://github.com/apache/incubator-seata/pull/2408)] fix missing sequence in undo_log table
+- [[#2391](https://github.com/apache/incubator-seata/pull/2391)] fix configuration exceptions lead to increased CPU usage
+- [[#2427](https://github.com/apache/incubator-seata/pull/2427)] fix StringUtils.toString(o) StackOverflowError
+- [[#2384](https://github.com/apache/incubator-seata/pull/2384)] fix StateMachineRepository#getStateMachineById will replace the last version in cache
+- [[#2323](https://github.com/apache/incubator-seata/pull/2323)] fix wrong proxy of datasource bean
+- [[#2466](https://github.com/apache/incubator-seata/pull/2466)] fix memory visibility of active attribute in file mode
+- [[#2349](https://github.com/apache/incubator-seata/pull/2349)] fix insert sql primary key value support check
+- [[#2479](https://github.com/apache/incubator-seata/pull/2479)] fix postgresql schema when not use lowerCase
+- [[#2449](https://github.com/apache/incubator-seata/pull/2449)] fix can't get table structure when startup
+- [[#2505](https://github.com/apache/incubator-seata/pull/2505)] fix bug of session store path value judgment
+- [[#2456](https://github.com/apache/incubator-seata/pull/2456)] fix server encode request error
+- [[#2495](https://github.com/apache/incubator-seata/pull/2495)] fix the NPE and reduce the request when lockkey is null
+- [[#2490](https://github.com/apache/incubator-seata/pull/2490)] fix RpcContext.addResource when resource is null
+- [[#2419](https://github.com/apache/incubator-seata/pull/2419)] fix http testcase run failed
+- [[#2535](https://github.com/apache/incubator-seata/pull/2535)] fix wrong configuration name in config.txt
+- [[#2524](https://github.com/apache/incubator-seata/pull/2524)] registration service configuration missing and inconsistent
+- [[#2473](https://github.com/apache/incubator-seata/pull/2473)] fix flush condition of disk in file mode
+- [[#2455](https://github.com/apache/incubator-seata/pull/2455)] fix child module can't execute copyright and checkstyle inspection
+
+### optimize
+
+- [[#2409](https://github.com/apache/incubator-seata/pull/2409)] reduce the db and network request when undoLog or lockKey is empty
+- [[#2329](https://github.com/apache/incubator-seata/pull/2329)] separate the different storage pattern processing logic
+- [[#2354](https://github.com/apache/incubator-seata/pull/2354)] optimize the unsupported listener logic for spring cloud config
+- [[#2320](https://github.com/apache/incubator-seata/pull/2320)] optimize protostuff and kryo serialize timestamp
+- [[#2307](https://github.com/apache/incubator-seata/pull/2307)] optimize transaction context switch logic when switch transaction mode
+- [[#2364](https://github.com/apache/incubator-seata/pull/2364)] optimize generated instances that were not actually used when the class was loaded
+- [[#2368](https://github.com/apache/incubator-seata/pull/2368)] add zk missing configuration
+- [[#2351](https://github.com/apache/incubator-seata/pull/2351)] add get local global status
+- [[#2529](https://github.com/apache/incubator-seata/pull/2529)] optimize druid parameter
+- [[#2288](https://github.com/apache/incubator-seata/pull/2288)] codecov.yml ignore mock test
+- [[#2297](https://github.com/apache/incubator-seata/pull/2297)] remove duplicated dependency
+- [[#2336](https://github.com/apache/incubator-seata/pull/2336)] add using organization logos
+- [[#2348](https://github.com/apache/incubator-seata/pull/2348)] remove redundant configuration
+- [[#2362](https://github.com/apache/incubator-seata/pull/2362)] optimize stackTraceLogger param
+- [[#2382](https://github.com/apache/incubator-seata/pull/2382)] optimize RegistryFactory singleton pattern and RegistryType judgement
+- [[#2400](https://github.com/apache/incubator-seata/pull/2400)] optimize the magic num of date at UUIDGenerator
+- [[#2397](https://github.com/apache/incubator-seata/pull/2397)] fix typo
+- [[#2407](https://github.com/apache/incubator-seata/pull/2407)] inaccurate judgment may be lead to NPE
+- [[#2402](https://github.com/apache/incubator-seata/pull/2402)] optimize the rm and tm register log
+- [[#2422](https://github.com/apache/incubator-seata/pull/2422)] add link of script in document
+- [[#2440](https://github.com/apache/incubator-seata/pull/2440)] optimize contact us and startup log
+- [[#2445](https://github.com/apache/incubator-seata/pull/2445)] optimize the class registration method for kryo and fst
+- [[#2372](https://github.com/apache/incubator-seata/pull/2372)] refactor lock store sql with SPI
+- [[#2453](https://github.com/apache/incubator-seata/pull/2453)] optimize unnecessary server configuration item
+- [[#2369](https://github.com/apache/incubator-seata/pull/2369)] refactor log store sql with SPI
+- [[#2526](https://github.com/apache/incubator-seata/pull/2526)] optimize spring-boot startup log
+- [[#2530](https://github.com/apache/incubator-seata/pull/2530)] remove use connPool
+- [[#2489](https://github.com/apache/incubator-seata/pull/2489)] optimize exceptionHandler's method signature
+- [[#2494](https://github.com/apache/incubator-seata/pull/2494)] reduce the redundant code
+- [[#2523](https://github.com/apache/incubator-seata/pull/2523)] optimize abnormal global transaction's output logs by frequency
+- [[#2549](https://github.com/apache/incubator-seata/pull/2549)] optimize the exception log for ZookeeperConfiguration
+- [[#2558](https://github.com/apache/incubator-seata/pull/2558)] optimize config and server module log
+- [[#2464](https://github.com/apache/incubator-seata/pull/2464)] enhance Saga transaction editor
+- [[#2553](https://github.com/apache/incubator-seata/pull/2553)] add some notes about using scripts
+
+  Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [funky-eyes](https://github.com/funky-eyes)
+- [ph3636](https://github.com/ph3636)
+- [lightClouds917](https://github.com/lightClouds917)
+- [l81893521](https://github.com/l81893521)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [objcoding](https://github.com/objcoding)
+- [CharmingRabbit](https://github.com/CharmingRabbit)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [lovepoem](https://github.com/lovepoem)
+- [SevenSecondsOfMemory](https://github.com/SevenSecondsOfMemory)
+- [zjinlei](https://github.com/zjinlei)
+- [ggndnn](https://github.com/ggndnn)
+- [tauntongo](https://github.com/tauntongo)
+- [threefish](https://github.com/threefish)
+- [helloworlde](https://github.com/helloworlde)
+- [long187](https://github.com/long187)
+- [jaspercloud](https://github.com/jaspercloud)
+- [dk-lockdown](https://github.com/dk-lockdown)
+- [wxbty](https://github.com/wxbty)
+- [sharajava](https://github.com/sharajava)
+- [ppj19891020](https://github.com/ppj19891020)
+- [YuKongEr](https://github.com/YuKongEr)
+- [Zh1Cheung](https://github.com/Zh1Cheung)
+- [wangwei-ying](https://github.com/wangwei-ying)
+- [mxszs](https://github.com/mxszs)
+- [q294881866](https://github.com/q294881866)
+- [HankDevelop](https://github.com/HankDevelop)
+
+  Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.1.0 (2020-02-19)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.1.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.1.0/seata-server-1.1.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.1.0
+
+Seata 1.1.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+### feature
+
+- [[#2200](https://github.com/apache/incubator-seata/pull/2200)] support postgresql(client and server)
+- [[#1746](https://github.com/apache/incubator-seata/pull/1746)] integrate with httpClient
+- [[#2240](https://github.com/apache/incubator-seata/pull/2240)] support custom saga transaction recovery strategy on transaction timeout
+- [[#1693](https://github.com/apache/incubator-seata/pull/1693)] support for druid class isolation loading
+- [[#2245](https://github.com/apache/incubator-seata/pull/2245)] zookeeper digest support
+- [[#2239](https://github.com/apache/incubator-seata/pull/2239)] compatibility dubbo 2.7.4+
+- [[#2203](https://github.com/apache/incubator-seata/pull/2203)] support nacos configuration group
+- [[#2086](https://github.com/apache/incubator-seata/pull/2086)] support apollo configuration namespace
+- [[#2106](https://github.com/apache/incubator-seata/pull/2106)] support FastThreadLocalContextCore
+- [[#1703](https://github.com/apache/incubator-seata/pull/1703)] create sql parser SPI and a druid type sql parser
+- [[#2151](https://github.com/apache/incubator-seata/pull/2151)] Saga provide a switch to skip branch report on branch success
+
+### bugfix
+
+- [[#2270](https://github.com/apache/incubator-seata/pull/2270)] fix worker size not support enum type and some minor problem
+- [[#2258](https://github.com/apache/incubator-seata/pull/2258)] fix channelHandler not sharable
+- [[#2261](https://github.com/apache/incubator-seata/pull/2261)] fix ApplicationContext has not been refreshed
+- [[#2262](https://github.com/apache/incubator-seata/pull/2262)] fix nacos script set group error
+- [[#2249](https://github.com/apache/incubator-seata/pull/2249)] fix saga statemachine status incorrect on register branch failed
+- [[#2262](https://github.com/apache/incubator-seata/pull/2262)] fix nacos script set group error
+- [[#2126](https://github.com/apache/incubator-seata/pull/2126)] fix escape characters for column and table names
+- [[#2234](https://github.com/apache/incubator-seata/pull/2234)] fix type error when fastjson deserialize long type
+- [[#2237](https://github.com/apache/incubator-seata/pull/2237)] fix DefaultCoordinatorTest failed in Windows OS
+- [[#2233](https://github.com/apache/incubator-seata/pull/2233)] fix fastjson undo filter tableMeta
+- [[#2172](https://github.com/apache/incubator-seata/pull/2172)] fix configuration center can't read configuration using SpringCloudConfig
+- [[#2217](https://github.com/apache/incubator-seata/pull/2217)] correct wrong property names in seata-spring-boot-starter
+- [[#2219](https://github.com/apache/incubator-seata/pull/2219)] fix the value of disableGlobalTransaction not being read correctly
+- [[#2187](https://github.com/apache/incubator-seata/pull/2187)] fix the wrong rollback sequence caused by the same record request from different transaction branches on different servers
+- [[#2175](https://github.com/apache/incubator-seata/pull/2175)] fix direct buffer OOM
+- [[#2210](https://github.com/apache/incubator-seata/pull/2210)] fix retry expired commit and rollback globalSession can't be removed
+- [[#2179](https://github.com/apache/incubator-seata/pull/2179)] fix type casting problem when using redis as registry
+- [[#2192](https://github.com/apache/incubator-seata/pull/2192)] fix override eureka getHostName() return ipAddress
+- [[#2198](https://github.com/apache/incubator-seata/pull/2198)] fix global lock not released when rollback retry timeout
+- [[#2167](https://github.com/apache/incubator-seata/pull/2167)] fix saga concurrent asynchronous execution with duplicate primary key xid
+- [[#2185](https://github.com/apache/incubator-seata/pull/2185)] fix issue of judgement container in kubernetes
+- [[#2145](https://github.com/apache/incubator-seata/pull/2145)] fix Saga report branch status incorrect when service retried succeed
+- [[#2113](https://github.com/apache/incubator-seata/pull/2113)] fix when branchRollback failed, it will trigger retry of multi-tc
+
+### optimize
+
+- [[#2255](https://github.com/apache/incubator-seata/pull/2255)] optimize some default configuration value
+- [[#2230](https://github.com/apache/incubator-seata/pull/2230)] unify the config style and keep defaults consistent
+- [[#1935](https://github.com/apache/incubator-seata/pull/1935)] some about rpc optimize
+- [[#2215](https://github.com/apache/incubator-seata/pull/2215)] optimize handing saga transaction timeout
+- [[#2227](https://github.com/apache/incubator-seata/pull/2227)] separate tc In/Outbound interface
+- [[#2033](https://github.com/apache/incubator-seata/pull/2033)] an optimization about DefaultRemotingParser
+- [[#1688](https://github.com/apache/incubator-seata/pull/1688)] reduce unnecessary dependences in client side
+- [[#2134](https://github.com/apache/incubator-seata/pull/2134)] separate the different transaction pattern processing logic
+- [[#2224](https://github.com/apache/incubator-seata/pull/2224)] optimize ContextCoreLoader code style
+- [[#2171](https://github.com/apache/incubator-seata/pull/2171)] optimize script and add script usage demo
+- [[#2208](https://github.com/apache/incubator-seata/pull/2208)] replace getDbType with LoadLevel name
+- [[#2182](https://github.com/apache/incubator-seata/pull/2182)] optimize configuration item prefix judgment
+- [[#2211](https://github.com/apache/incubator-seata/pull/2211)] optimize RootContext code style
+- [[#2140](https://github.com/apache/incubator-seata/pull/2140)] optimize GzipUtil code style
+- [[#2209](https://github.com/apache/incubator-seata/pull/2209)] refactor seata-discovery more readable
+- [[#2055](https://github.com/apache/incubator-seata/pull/2055)] refactor tableMetaCache and undoLogManager with SPI
+- [[#2184](https://github.com/apache/incubator-seata/pull/2184)] refactor seata-config more readable
+- [[#2095](https://github.com/apache/incubator-seata/pull/2095)] refactor of auto proxying of datasource
+- [[#2178](https://github.com/apache/incubator-seata/pull/2178)] saga statemachine designer add default properties for catch node
+- [[#2103](https://github.com/apache/incubator-seata/pull/2103)] optimize tcc module code style
+- [[#2125](https://github.com/apache/incubator-seata/pull/2125)] change the package path of MySQL recognizer
+- [[#2176](https://github.com/apache/incubator-seata/pull/2176)] fix typos
+- [[#2156](https://github.com/apache/incubator-seata/pull/2156)] refactor sql parser type druid as constant
+- [[#2170](https://github.com/apache/incubator-seata/pull/2170)] enhance test coverage of seata common
+- [[#2139](https://github.com/apache/incubator-seata/pull/2139)] gracefully close resources
+- [[#2097](https://github.com/apache/incubator-seata/pull/2097)] use serializer package name instead of codec
+- [[#2159](https://github.com/apache/incubator-seata/pull/2159)] optimize spring module code style
+- [[#2036](https://github.com/apache/incubator-seata/pull/2036)] optimize Dubbo parser
+- [[#2062](https://github.com/apache/incubator-seata/pull/2062)] optimize seata-rm-datasource module code style
+- [[#2146](https://github.com/apache/incubator-seata/pull/2146)] optimize log specifications
+- [[#2038](https://github.com/apache/incubator-seata/pull/2038)] simplify to make seata-common more readable
+- [[#2120](https://github.com/apache/incubator-seata/pull/2120)] fix typos
+- [[#2078](https://github.com/apache/incubator-seata/pull/2078)] enhance oracle table meta cache code coverage
+- [[#2115](https://github.com/apache/incubator-seata/pull/2115)] fix typos
+- [[#2099](https://github.com/apache/incubator-seata/pull/2099)] optimize tm module code style
+
+  Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [objcoding](https://github.com/objcoding)
+- [long187](https://github.com/long187)
+- [zjinlei](https://github.com/zjinlei)
+- [ggndnn](https://github.com/ggndnn)
+- [lzf971107](https://github.com/lzf971107)
+- [CvShrimp](https://github.com/CvShrimp)
+- [l81893521](https://github.com/l81893521)
+- [ph3636](https://github.com/ph3636)
+- [koonchen](https://github.com/koonchen)
+- [leizhiyuan](https://github.com/leizhiyuan)
+- [funky-eyes](https://github.com/funky-eyes)
+- [caioguedes](https://github.com/caioguedes)
+- [helloworlde](https://github.com/helloworlde)
+- [wxbty](https://github.com/wxbty)
+- [bao-hp](https://github.com/bao-hp)
+- [guojingyinan219](https://github.com/guojingyinan219)
+- [CharmingRabbit](https://github.com/CharmingRabbit)
+- [jaspercloud](https://github.com/jaspercloud)
+- [jsbxyyx](https://github.com/jsbxyyx)
+
+  Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+- **WebSite:** https://seata.apache.org
+
+</details>
+
+### 1.0.0 (2019-12-21)
+
+[source](https://github.com/apache/incubator-seata/archive/v1.0.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v1.0.0/seata-server-1.0.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 1.0.0
+
+Seata 1.0.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### feature
+
+- [[#1966](https://github.com/apache/incubator-seata/pull/1966)] add single send request for client
+- [[#2004](https://github.com/apache/incubator-seata/pull/2004)] add config center synchronization script
+- [[#1997](https://github.com/apache/incubator-seata/pull/1997)] provides a tool for generating graphics that show the state machine execution path
+- [[#1992](https://github.com/apache/incubator-seata/pull/1992)] support dynamic disable
+- [[#1898](https://github.com/apache/incubator-seata/pull/1898)] support dynamic config
+- [[#1983](https://github.com/apache/incubator-seata/pull/1983)] add hessian codec for rpc serialization
+- [[#1960](https://github.com/apache/incubator-seata/pull/1960)] Provide a visual graph designer for Seata Saga StateMachine based on GGEditor
+- [[#1900](https://github.com/apache/incubator-seata/pull/1900)] Saga state language support "Retry" service when error occurred
+- [[#1885](https://github.com/apache/incubator-seata/pull/1885)] add configuration for build docker image in server module
+- [[#1914](https://github.com/apache/incubator-seata/pull/1914)] support where condition exists for Oracle
+- [[#1878](https://github.com/apache/incubator-seata/pull/1878)] support exists in where condition
+- [[#1871](https://github.com/apache/incubator-seata/pull/1871)] adapt springcloud-alibaba-seata autoconfig
+- [[#1844](https://github.com/apache/incubator-seata/pull/1844)] StateMachine ServiceTask supports asynchronous execution
+- [[#1742](https://github.com/apache/incubator-seata/pull/1742)] add seata-spring-boot-starter
+- [[#1460](https://github.com/apache/incubator-seata/pull/1460)] support gzip compressor
+- [[#1492](https://github.com/apache/incubator-seata/pull/1492)] support gRpc
+
+#### bugfix
+
+- [[#2066](https://github.com/apache/incubator-seata/pull/2066)] fix thread unsafe which missing double check when initial eureka client
+- [[#2059](https://github.com/apache/incubator-seata/pull/2059)] fix repeated rollback caused by asynchronous rollback thread
+- [[#2050](https://github.com/apache/incubator-seata/pull/2050)] fix if add configListener but dataId not exist, it will throw NPE
+- [[#2053](https://github.com/apache/incubator-seata/pull/2053)] fix when tableName is keyword, the insert operation will get afterImage fail
+- [[#2054](https://github.com/apache/incubator-seata/pull/2054)] fix RetryRollbackingSessionManager lost Rollbacking
+- [[#2043](https://github.com/apache/incubator-seata/pull/2043)] fix startup failure when dynamic proxy is turned on and use druid-spring-boot-starter
+- [[#1668](https://github.com/apache/incubator-seata/pull/1668)] fix sql statement escape symbol
+- [[#2029](https://github.com/apache/incubator-seata/pull/2029)] fix seata-spring-boot-starter does not work
+- [[#2037](https://github.com/apache/incubator-seata/pull/2037)] fix mysql connection unable to release
+- [[#2032](https://github.com/apache/incubator-seata/pull/2032)] fix Etcd3Configuration FILE_CONFIG reference incorrect
+- [[#1929](https://github.com/apache/incubator-seata/pull/1929)] fix duplicated table meta cache key
+- [[#1996](https://github.com/apache/incubator-seata/pull/1996)] fix auto proxying of datasource which has final modifier
+- [[#2001](https://github.com/apache/incubator-seata/pull/2001)] replace deprecated jvm args
+- [[#1984](https://github.com/apache/incubator-seata/pull/1984)] fix presuppose environment variable and replace base image for tool
+- [[#1978](https://github.com/apache/incubator-seata/pull/1978)] fix FileTransactionStoreManagerTest failed on wins OS
+- [[#1953](https://github.com/apache/incubator-seata/pull/1953)] fix get table meta failed with catalog
+- [[#1973](https://github.com/apache/incubator-seata/pull/1973)] fix error of get server port in container
+- [[#1905](https://github.com/apache/incubator-seata/pull/1905)] solve the lock_key length problem
+- [[#1927](https://github.com/apache/incubator-seata/pull/1927)] fix class with private access constructors should not be loaded by SPI.
+- [[#1961](https://github.com/apache/incubator-seata/pull/1961)] fix travis-ci exceeded the maximum log length
+- [[#1893](https://github.com/apache/incubator-seata/pull/1893)] fix saga dose not delete branches when transaction ended
+- [[#1932](https://github.com/apache/incubator-seata/pull/1932)] fix issue of doesn't match environment when build docker image
+- [[#1912](https://github.com/apache/incubator-seata/pull/1912)] fix string.format() method formatting error
+- [[#1917](https://github.com/apache/incubator-seata/pull/1917)] fix NullPointerException in DB mock during CI
+- [[#1909](https://github.com/apache/incubator-seata/pull/1909)] fix xidInterceptorType is null
+- [[#1902](https://github.com/apache/incubator-seata/pull/1902)] fix NPE in UndoExecutorFactory
+- [[#1789](https://github.com/apache/incubator-seata/pull/1789)] fix xid header lowercase
+- [[#1889](https://github.com/apache/incubator-seata/pull/1889)] fix register branch thread hang on tcc mode
+- [[#1813](https://github.com/apache/incubator-seata/pull/1813)] fix TCC does not support cross-service
+- [[#1825](https://github.com/apache/incubator-seata/pull/1825)] fix global status inconsistent when rollback and branch register are concurrent
+- [[#1850](https://github.com/apache/incubator-seata/pull/1850)] fix server restart not recover max sessionId on db mode
+- [[#1879](https://github.com/apache/incubator-seata/pull/1879)] fix jdbc parameter set null
+- [[#1874](https://github.com/apache/incubator-seata/pull/1874)] fix when write the new file throw ClosedChannelException
+- [[#1863](https://github.com/apache/incubator-seata/pull/1863)] fix the other of column type cause rollback fail
+- [[#1837](https://github.com/apache/incubator-seata/pull/1837)] fix saga ExpressionEvaluator not support null value
+- [[#1810](https://github.com/apache/incubator-seata/pull/1810)] fix statemachine def can't store to db and provide query the state logs
+- [[#1834](https://github.com/apache/incubator-seata/pull/1834)] fix StateInstance log can't record output parameters
+- [[#1856](https://github.com/apache/incubator-seata/pull/1856)] fix protostuff undo log get default content
+- [[#1845](https://github.com/apache/incubator-seata/pull/1845)] fix when branchCommit failed,it will trigger retry of multi-tc and throw npe
+- [[#1858](https://github.com/apache/incubator-seata/pull/1858)] fix Global transaction does not work
+- [[#1846](https://github.com/apache/incubator-seata/pull/1846)] fix multi-thread concurrent add listener problem
+- [[#1839](https://github.com/apache/incubator-seata/pull/1839)] fix filter repeated lock
+- [[#1768](https://github.com/apache/incubator-seata/pull/1768)] fix problem when set useInformationSchema true and table name was keyword
+- [[#1796](https://github.com/apache/incubator-seata/pull/1796)] fix unexcepted exception can roll back
+- [[#1805](https://github.com/apache/incubator-seata/pull/1805)] fix connectionproxy prepareStatement not in global transaction
+- [[#1780](https://github.com/apache/incubator-seata/pull/1780)] fix can't use select for update in oracle
+- [[#1802](https://github.com/apache/incubator-seata/pull/1802)] changing HashMap to LinkedHashMap for deterministic iterations
+- [[#1793](https://github.com/apache/incubator-seata/pull/1793)] fix auto proxy for multiple-datasource does not work
+- [[#1788](https://github.com/apache/incubator-seata/pull/1788)] fix mysql can not get primary key value
+- [[#1764](https://github.com/apache/incubator-seata/pull/1764)] fix jdk 11 remoteAddress is null
+- [[#1778](https://github.com/apache/incubator-seata/pull/1778)] fix clean up resources in time to avoid mutual influence between unit tests
+- [[#1777](https://github.com/apache/incubator-seata/pull/1777)] fix DeleteExecutor buildBeforeImageSQL keyword checker by db type
+
+#### optimize
+
+- [[#2068](https://github.com/apache/incubator-seata/pull/2068)] optimize get database connection
+- [[#2056](https://github.com/apache/incubator-seata/pull/2056)] remove non-javadoc element
+- [[#1775](https://github.com/apache/incubator-seata/pull/1775)] optimize datasource manager branch rollback exception log
+- [[#2000](https://github.com/apache/incubator-seata/pull/2000)] classify script to correspond directory
+- [[#2007](https://github.com/apache/incubator-seata/pull/2007)] enhance test coverage of seata common
+- [[#1969](https://github.com/apache/incubator-seata/pull/1969)] add ops script for Docker-Compose, Kubernetes and Helm
+- [[#1967](https://github.com/apache/incubator-seata/pull/1967)] Add Dockerfile
+- [[#2018](https://github.com/apache/incubator-seata/pull/2018)] optimize about ConfigFuture
+- [[#2020](https://github.com/apache/incubator-seata/pull/2020)] optimize saga log output
+- [[#1975](https://github.com/apache/incubator-seata/pull/1975)] Flatten Saga nested transactions
+- [[#1980](https://github.com/apache/incubator-seata/pull/1980)] show the applicationId when register TM
+- [[#1994](https://github.com/apache/incubator-seata/pull/1994)] rename zk configuration root path.
+- [[#1990](https://github.com/apache/incubator-seata/pull/1990)] add netty config constant keys.
+- [[#1979](https://github.com/apache/incubator-seata/pull/1979)] optimize get select for update recognizer
+- [[#1957](https://github.com/apache/incubator-seata/pull/1957)] load keywordChecker through SPI
+- [[#1956](https://github.com/apache/incubator-seata/pull/1956)] modify no available server error more clearly, and fixed NP
+- [[#1958](https://github.com/apache/incubator-seata/pull/1958)] transform desinger json to statemachine standard json
+- [[#1951](https://github.com/apache/incubator-seata/pull/1951)] add using organization logo
+- [[#1950](https://github.com/apache/incubator-seata/pull/1950)] leak of error trace while handleAsyncCommitting
+- [[#1931](https://github.com/apache/incubator-seata/pull/1931)] nacos-config.py support namespace
+- [[#1938](https://github.com/apache/incubator-seata/pull/1938)] optimize the speed when batch insert or batch update
+- [[#1930](https://github.com/apache/incubator-seata/pull/1930)] reduce HashMap initial size
+- [[#1919](https://github.com/apache/incubator-seata/pull/1919)] force check code style
+- [[#1918](https://github.com/apache/incubator-seata/pull/1918)] optimize assert throw exception
+- [[#1911](https://github.com/apache/incubator-seata/pull/1911)] javadoc should be used for classes, class variables and methods.
+- [[#1920](https://github.com/apache/incubator-seata/pull/1920)] use iterator to remove timeout future.
+- [[#1907](https://github.com/apache/incubator-seata/pull/1907)] encapsulation determines the supported database type
+- [[#1903](https://github.com/apache/incubator-seata/pull/1903)] batch query branchSession by xid list
+- [[#1910](https://github.com/apache/incubator-seata/pull/1910)] all Override methods must be annotated with [@override](https://github.com/override)
+- [[#1906](https://github.com/apache/incubator-seata/pull/1906)] add exception system exit code when rpcServer init.
+- [[#1897](https://github.com/apache/incubator-seata/pull/1897)] remove clientTest it's not use
+- [[#1883](https://github.com/apache/incubator-seata/pull/1883)] restructure SQLRecognizer and UndoExecutor
+- [[#1890](https://github.com/apache/incubator-seata/pull/1890)] reformat saga module
+- [[#1798](https://github.com/apache/incubator-seata/pull/1798)] improving method format performance
+- [[#1884](https://github.com/apache/incubator-seata/pull/1884)] optimize auto closeable
+- [[#1869](https://github.com/apache/incubator-seata/pull/1869)] add phase one successful reporting switch
+- [[#1842](https://github.com/apache/incubator-seata/pull/1842)] add some init script
+- [[#1838](https://github.com/apache/incubator-seata/pull/1838)] simplify and groom configuration items
+- [[#1866](https://github.com/apache/incubator-seata/pull/1866)] server lack of error trace
+- [[#1867](https://github.com/apache/incubator-seata/pull/1867)] optimization of seata-spring-boot-starter
+- [[#1817](https://github.com/apache/incubator-seata/pull/1817)] add unit test for seata-tm module
+- [[#1823](https://github.com/apache/incubator-seata/pull/1823)] reduce server rpc with db
+- [[#1835](https://github.com/apache/incubator-seata/pull/1835)] SagaTransactionalTemplate provide reloadTransaction method
+- [[#1861](https://github.com/apache/incubator-seata/pull/1861)] optimize no primary key output log
+- [[#1836](https://github.com/apache/incubator-seata/pull/1836)] change "IsPersist" property value type from String to Boolean
+- [[#1824](https://github.com/apache/incubator-seata/pull/1824)] remove deprecated JVM arguments in Java 11
+- [[#1820](https://github.com/apache/incubator-seata/pull/1820)] adjust check style
+- [[#1806](https://github.com/apache/incubator-seata/pull/1806)] format error log
+- [[#1815](https://github.com/apache/incubator-seata/pull/1815)] update codecov.yml
+- [[#1811](https://github.com/apache/incubator-seata/pull/1811)] adjust codecov configuration
+- [[#1799](https://github.com/apache/incubator-seata/pull/1799)] reduce unnecessary synchronized
+- [[#1674](https://github.com/apache/incubator-seata/pull/1674)] increase rm code coverage by db mock
+- [[#1710](https://github.com/apache/incubator-seata/pull/1710)] add prefix counter for NamedThreadFactory
+- [[#1790](https://github.com/apache/incubator-seata/pull/1790)] format seata server register eureka instance id
+- [[#1760](https://github.com/apache/incubator-seata/pull/1760)] put message to logQueue
+- [[#1787](https://github.com/apache/incubator-seata/pull/1787)] make rpc remoting log easier to read
+- [[#1786](https://github.com/apache/incubator-seata/pull/1786)] simplify code
+- [[#1766](https://github.com/apache/incubator-seata/pull/1766)] remove unused method
+- [[#1770](https://github.com/apache/incubator-seata/pull/1770)] string splice and release lock
+
+  Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [long187](https://github.com/long187)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [l81893521](https://github.com/l81893521)
+- [helloworlde](https://github.com/helloworlde)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [zjinlei](https://github.com/zjinlei)
+- [CharmingRabbit](https://github.com/CharmingRabbit)
+- [objcoding](https://github.com/objcoding)
+- [cmonkey](https://github.com/cmonkey)
+- [lzf971107](https://github.com/lzf971107)
+- [ggndnn](https://github.com/ggndnn)
+- [lightClouds917](https://github.com/lightClouds917)
+- [ruqinhu](https://github.com/ruqinhu)
+- [yuhuangbin](https://github.com/yuhuangbin)
+- [anrror](https://github.com/anrror)
+- [funky-eyes](https://github.com/funky-eyes)
+- [caohdgege](https://github.com/caohdgege)
+- [contextshuffling](https://github.com/contextshuffling)
+- [echooymxq](https://github.com/echooymxq)
+- [github-ygy](https://github.com/github-ygy)
+- [iapplejohn](https://github.com/iapplejohn)
+- [jKill](https://github.com/jKill)
+- [Justice-love](https://github.com/Justice-love)
+- [lovepoem](https://github.com/lovepoem)
+- [niaoshuai](https://github.com/niaoshuai)
+- [ph3636](https://github.com/ph3636)
+- [wangwei-ying](https://github.com/wangwei-ying)
+- [whjjay](https://github.com/whjjay)
+- [yangfuhai](https://github.com/yangfuhai)
+- [zhongfuhua](https://github.com/zhongfuhua)
+- [lizwmaster](https://github.com/lizwmaster)
+
+  Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.9.0 (2019-10-16)
+
+[source](https://github.com/apache/incubator-seata/archive/v0.9.0.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v0.9.0/seata-server-0.9.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.9.0
+
+Seata 0.9.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### feature
+
+- [[#1608](https://github.com/apache/incubator-seata/pull/1608)] Saga implementation base on state machine
+- [[#1625](https://github.com/apache/incubator-seata/pull/1625)] support custom config and registry type
+- [[#1656](https://github.com/apache/incubator-seata/pull/1656)] support spring cloud config
+- [[#1689](https://github.com/apache/incubator-seata/pull/1689)] support -e startup parameter for specifying the environment name
+- [[#1739](https://github.com/apache/incubator-seata/pull/1739)] support retry when tm commit or rollback failed
+
+#### bugfix
+
+- [[#1605](https://github.com/apache/incubator-seata/pull/1605)] fix deadlocks that can be caused by object locks and global locks and optimize the granularity of locks
+- [[#1685](https://github.com/apache/incubator-seata/pull/1685)] fix pk too long in lock table on db mode and optimize error log
+- [[#1691](https://github.com/apache/incubator-seata/pull/1691)] fix can't access private member of DruidDataSourceWrapper
+- [[#1699](https://github.com/apache/incubator-seata/pull/1699)] fix use 'in' and 'between' in where condition for Oracle and Mysql
+- [[#1713](https://github.com/apache/incubator-seata/pull/1713)] fix LockManagerTest.concurrentUseAbilityTest assertion condition
+- [[#1720](https://github.com/apache/incubator-seata/pull/1720)] fix can't refresh table meta data for oracle
+- [[#1729](https://github.com/apache/incubator-seata/pull/1729)] fix oracle batch insert error
+- [[#1735](https://github.com/apache/incubator-seata/pull/1735)] clean xid when tm commit or rollback failed
+- [[#1749](https://github.com/apache/incubator-seata/pull/1749)] fix undo support oracle table meta cache
+- [[#1751](https://github.com/apache/incubator-seata/pull/1751)] fix memory lock is not released due to hash conflict
+- [[#1761](https://github.com/apache/incubator-seata/pull/1761)] fix oracle rollback failed when the table has null Blob Clob value
+- [[#1759](https://github.com/apache/incubator-seata/pull/1759)] fix saga service method not support interface type parameter
+- [[#1401](https://github.com/apache/incubator-seata/pull/1401)] fix the first registration resource is null when RM starts
+
+
+
+#### optimize
+
+- [[#1701](https://github.com/apache/incubator-seata/pull/1701)] remove unused imports
+- [[#1705](https://github.com/apache/incubator-seata/pull/1705)] Based on Java5 optimization
+- [[#1706](https://github.com/apache/incubator-seata/pull/1706)] optimize inner class to static class
+- [[#1707](https://github.com/apache/incubator-seata/pull/1707)] default charset use StandardCharsets.UTF_8 instead
+- [[#1712](https://github.com/apache/incubator-seata/pull/1712)] abstract undolog manager class
+- [[#1722](https://github.com/apache/incubator-seata/pull/1722)] simplify to make codes more readable
+- [[#1726](https://github.com/apache/incubator-seata/pull/1726)] format log messages
+- [[#1738](https://github.com/apache/incubator-seata/pull/1738)] add server's jvm parameters
+- [[#1743](https://github.com/apache/incubator-seata/pull/1743)] improve the efficiency of the batch log
+- [[#1747](https://github.com/apache/incubator-seata/pull/1747)] use raw types instead of boxing types
+- [[#1750](https://github.com/apache/incubator-seata/pull/1750)] abstract tableMeta cache class
+- [[#1755](https://github.com/apache/incubator-seata/pull/1755)] enhance test coverage of seata-common module
+- [[#1756](https://github.com/apache/incubator-seata/pull/1756)] security: upgrade jackson to avoid security vulnerabilities
+- [[#1657](https://github.com/apache/incubator-seata/pull/1657)] optimize the problem of large direct buffer when file rolling in file storage mode
+
+
+Thanks to these contributors for their code commits. Please report an unintended omission.
+
+
+- [slievrly](https://github.com/slievrly)
+- [long187](https://github.com/long187)
+- [ggndnn](https://github.com/ggndnn)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [BeiKeJieDeLiuLangMao](https://github.com/BeiKeJieDeLiuLangMao)
+- [zjinlei](https://github.com/zjinlei)
+- [cmonkey](https://github.com/cmonkey)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [zaqweb](https://github.com/zaqweb)
+- [tjnettech](https://github.com/tjnettech)
+- [l81893521](https://github.com/l81893521)
+- [abel533](https://github.com/abel533)
+- [suhli](https://github.com/suhli)
+- [github-ygy](https://github.com/github-ygy)
+- [worstenemy](https://github.com/worstenemy)
+- [caioguedes](https://github.com/caioguedes)
+
+  Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.8.1 (2019-09-18)
+
+[source](https://github.com/apache/incubator-seata/archive/v0.8.1.zip) |
+[binary](https://github.com/apache/incubator-seata/releases/download/v0.8.1/seata-server-0.8.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.8.1
+
+  Seata 0.8.1 Released.
+
+  Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+  The version is updated as follows:
+
+#### feature
+
+- [[#1598](https://github.com/apache/incubator-seata/pull/1598)] support profile to use absolute path
+- [[#1617](https://github.com/apache/incubator-seata/pull/1617)] support profile’s(registry.conf) name configurable
+- [[#1418](https://github.com/apache/incubator-seata/pull/1418)] support undo_log kryo serializer
+- [[#1489](https://github.com/apache/incubator-seata/pull/1489)] support protobuf maven plugin
+- [[#1437](https://github.com/apache/incubator-seata/pull/1437)] support kryo codec
+- [[#1478](https://github.com/apache/incubator-seata/pull/1478)] support db mock
+- [[#1512](https://github.com/apache/incubator-seata/pull/1512)] extended support for mysql and oracle multiple insert batch syntax
+- [[#1496](https://github.com/apache/incubator-seata/pull/1496)] support auto proxy of DataSource
+
+#### bugfix
+
+- [[#1646](https://github.com/apache/incubator-seata/pull/1646)] fix selectForUpdate lockQuery exception in file mode
+- [[#1572](https://github.com/apache/incubator-seata/pull/1572)] fix get tablemeta fail in oracle when table name was lower case
+- [[#1663](https://github.com/apache/incubator-seata/pull/1663)] fix get tablemeta fail when table name was keyword
+- [[#1666](https://github.com/apache/incubator-seata/pull/1666)] fix restore connection's autocommit
+- [[#1643](https://github.com/apache/incubator-seata/pull/1643)] fix serialize and deserialize in java.sql.Blob, java.sql.Clob
+- [[#1628](https://github.com/apache/incubator-seata/pull/1628)] fix oracle support ROWNUM query
+- [[#1552](https://github.com/apache/incubator-seata/pull/1552)] fix BufferOverflow when BranchSession size too large
+- [[#1609](https://github.com/apache/incubator-seata/pull/1609)] fix thread unsafe of oracle keyword checker
+- [[#1599](https://github.com/apache/incubator-seata/pull/1599)] fix thread unsafe of mysql keyword checker
+- [[#1607](https://github.com/apache/incubator-seata/pull/1607)] fix NoSuchMethodError when the version of druid used &lt; 1.1.3
+- [[#1581](https://github.com/apache/incubator-seata/pull/1581)] fix missing some length in GlobalSession and FileTransactionStoreManager
+- [[#1594](https://github.com/apache/incubator-seata/pull/1594)] fix nacos's default namespace
+- [[#1550](https://github.com/apache/incubator-seata/pull/1550)] fix calculate BranchSession size missing xidBytes.length
+- [[#1558](https://github.com/apache/incubator-seata/pull/1558)] fix NPE when the rpcMessage's body is null
+- [[#1505](https://github.com/apache/incubator-seata/pull/1505)] fix bind public network address listen failed
+- [[#1539](https://github.com/apache/incubator-seata/pull/1539)] fix nacos namespace setting does not take effect
+- [[#1537](https://github.com/apache/incubator-seata/pull/1537)] fix nacos-config.txt missing store.db.driver-class-name property
+- [[#1522](https://github.com/apache/incubator-seata/pull/1522)] fix ProtocolV1CodecTest testAll may be appears test not pass
+- [[#1525](https://github.com/apache/incubator-seata/pull/1525)] fix when getAfterImage error, trx autocommit
+- [[#1518](https://github.com/apache/incubator-seata/pull/1518)] fix EnhancedServiceLoader may be appears load class error
+- [[#1514](https://github.com/apache/incubator-seata/pull/1514)] fix when lack serialization dependence can't generate undolog and report true
+- [[#1445](https://github.com/apache/incubator-seata/pull/1445)] fix DefaultCoordinatorMetricsTest UT failed
+- [[#1481](https://github.com/apache/incubator-seata/pull/1481)] fix TableMetaCache refresh problem in multiple datasource
+
+#### optimize
+
+- [[#1629](https://github.com/apache/incubator-seata/pull/1629)] optimize the watcher efficiency of etcd3
+- [[#1661](https://github.com/apache/incubator-seata/pull/1661)] optimize global_table insert transaction_name size
+- [[#1633](https://github.com/apache/incubator-seata/pull/1633)] optimize branch transaction repeated reporting false
+- [[#1654](https://github.com/apache/incubator-seata/pull/1654)] optimize wrong usage of slf4j
+- [[#1593](https://github.com/apache/incubator-seata/pull/1593)] optimize and standardize server log
+- [[#1648](https://github.com/apache/incubator-seata/pull/1648)] optimize transaction_name length when building the table
+- [[#1576](https://github.com/apache/incubator-seata/pull/1576)] eliminate the impact of instructions reordering on session async committing task
+- [[#1618](https://github.com/apache/incubator-seata/pull/1618)] optimize undolog manager and fix delete undolog support oracle
+- [[#1469](https://github.com/apache/incubator-seata/pull/1469)] reduce the number of lock conflict exception
+- [[#1619](https://github.com/apache/incubator-seata/pull/1416)] replace StringBuffer with StringBuilder
+- [[#1580](https://github.com/apache/incubator-seata/pull/1580)] optimize LockKeyConflictException and change register method
+- [[#1574](https://github.com/apache/incubator-seata/pull/1574)] optimize once delete GlobalSession locks for db mode when commit success
+- [[#1601](https://github.com/apache/incubator-seata/pull/1601)] optimize typo
+- [[#1602](https://github.com/apache/incubator-seata/pull/1602)] upgrade fastjson version to 1.2.60 for security issue
+- [[#1583](https://github.com/apache/incubator-seata/pull/1583)] optimize get oracle primary index
+- [[#1575](https://github.com/apache/incubator-seata/pull/1575)] add UT for RegisterTMRequest
+- [[#1559](https://github.com/apache/incubator-seata/pull/1559)] optimize delay to delete the expired undo log
+- [[#1547](https://github.com/apache/incubator-seata/pull/1547)] TableRecords delete jackson annotation
+- [[#1542](https://github.com/apache/incubator-seata/pull/1542)] optimize AbstractSessionManager debug log
+- [[#1535](https://github.com/apache/incubator-seata/pull/1535)] remove H2 and pgsql get primary index code and close resultSet
+- [[#1541](https://github.com/apache/incubator-seata/pull/1541)] code clean
+- [[#1544](https://github.com/apache/incubator-seata/pull/1544)] remove Chinese comment
+- [[#1533](https://github.com/apache/incubator-seata/pull/1533)] refactor of the logics of Multi-configuration Isolation
+- [[#1493](https://github.com/apache/incubator-seata/pull/1493)] add table meta checker switch
+- [[#1530](https://github.com/apache/incubator-seata/pull/1530)] throw Exception when no index in the table
+- [[#1444](https://github.com/apache/incubator-seata/pull/1444)] simplify operation of map
+- [[#1497](https://github.com/apache/incubator-seata/pull/1497)] add seata-all dependencies
+- [[#1490](https://github.com/apache/incubator-seata/pull/1490)] remove unnecessary code
+
+  Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [BeiKeJieDeLiuLangMao](https://github.com/BeiKeJieDeLiuLangMao)
+- [jsbxyyx](https://github.com/jsbxyyx)
+- [ldcsaa](https://github.com/ldcsaa)
+- [zjinlei](https://github.com/zjinlei)
+- [l81893521](https://github.com/l81893521)
+- [ggndnn](https://github.com/ggndnn)
+- [github-ygy](https://github.com/github-ygy)
+- [chenxi-null](https://github.com/chenxi-null)
+- [tq02ksu](https://github.com/tq02ksu)
+- [AjaxXu](https://github.com/AjaxXu)
+- [finalcola](https://github.com/finalcola)
+- [lovepoem](https://github.com/lovepoem)
+- [cmonkey](https://github.com/cmonkey)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [andyqian](https://github.com/andyqian)
+- [tswstarplanet](https://github.com/tswstarplanet)
+- [zhengyangyong](https://github.com/zhengyangyong)
+
+  Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.8.0 (2019-08-16)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.8.0.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.8.0/seata-server-0.8.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.8.0
+
+Seata 0.8.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### feature
+
+- [[#902](https://github.com/apache/incubator-seata/pull/902)] support oracle database in AT mode
+- [[#1447](https://github.com/apache/incubator-seata/pull/1447)] support oracle batch operation
+- [[#1392](https://github.com/apache/incubator-seata/pull/1392)] support undo log table name configurable
+- [[#1353](https://github.com/apache/incubator-seata/pull/1353)] support mysql batch update and batch delete
+- [[#1379](https://github.com/apache/incubator-seata/pull/1379)] support -Dkey=value SysConfig
+- [[#1365](https://github.com/apache/incubator-seata/pull/1365)] support schedule check table mata
+- [[#1371](https://github.com/apache/incubator-seata/pull/1371)] support mysql preparedStatement batch self-increment primary keys
+- [[#1337](https://github.com/apache/incubator-seata/pull/1337)] support mysql batch insert for non-self-inc primary keys
+- [[#1235](https://github.com/apache/incubator-seata/pull/1453)] support delete expired undolog use protobuf codec
+- [[#1235](https://github.com/apache/incubator-seata/pull/1235)] support to delete undolog in back task use seata codec
+- [[#1323](https://github.com/apache/incubator-seata/pull/1323)] support database driver class configuration item
+
+#### bugfix
+
+- [[#1456](https://github.com/apache/incubator-seata/pull/1456)] fix xid would be duplicate in cluster mode
+- [[#1454](https://github.com/apache/incubator-seata/pull/1454)] fix DateCompareUtils can not compare byte array
+- [[#1452](https://github.com/apache/incubator-seata/pull/1452)] fix select for update retry get dirty value
+- [[#1443](https://github.com/apache/incubator-seata/pull/1443)] fix serialize the type of timestamp lost nano value
+- [[#1374](https://github.com/apache/incubator-seata/pull/1374)] fix store.mode get configuration inconsistent
+- [[#1409](https://github.com/apache/incubator-seata/pull/1409)] fix map.toString() error
+- [[#1344](https://github.com/apache/incubator-seata/pull/1344)] fix ByteBuffer allocates a fixed length, which cause BufferOverflowException
+- [[#1419](https://github.com/apache/incubator-seata/pull/1419)] fix if the connection is autocommit=false will cause fail to delete
+- [[#1370](https://github.com/apache/incubator-seata/pull/1370)] fix begin failed not release channel and throw exception
+- [[#1396](https://github.com/apache/incubator-seata/pull/1396)] fix ClassNotFound problem for Nacos config implementation
+- [[#1395](https://github.com/apache/incubator-seata/pull/1395)] fix check null channel
+- [[#1385](https://github.com/apache/incubator-seata/pull/1385)] fix get SessionManager error when rollback retry timeout
+- [[#1378](https://github.com/apache/incubator-seata/pull/1378)] fix clusterAddressMap did not remove the instance after the instance was offline
+- [[#1332](https://github.com/apache/incubator-seata/pull/1332)] fix nacos script initialization the configuration value contains ’=‘ failed
+- [[#1341](https://github.com/apache/incubator-seata/pull/1341)] fix multiple operations on the same record in the same local transaction, rollback failed
+- [[#1339](https://github.com/apache/incubator-seata/pull/1339)] fix when image is EmptyTableRecords, rollback failed
+- [[#1314](https://github.com/apache/incubator-seata/pull/1314)] fix if don't specify the startup parameters, db mode don't take effect
+- [[#1342](https://github.com/apache/incubator-seata/pull/1342)] fix ByteBuffer allocate len error
+- [[#1333](https://github.com/apache/incubator-seata/pull/1333)] fix netty memory leak
+- [[#1338](https://github.com/apache/incubator-seata/pull/1338)] fix lock is not acquired when multiple branches have cross locks
+- [[#1334](https://github.com/apache/incubator-seata/pull/1334)] fix lock key npe bug, when tcc use protobuf
+- [[#1313](https://github.com/apache/incubator-seata/pull/1313)] fix DefaultFailureHandler check status NPE
+
+#### optimize
+
+- [[#1474](https://github.com/apache/incubator-seata/pull/1474)] optimize data image compare log
+- [[#1446](https://github.com/apache/incubator-seata/pull/1446)] optimize the server's schedule tasks
+- [[#1448](https://github.com/apache/incubator-seata/pull/1448)] refactor executor class remove the duplicate code
+- [[#1408](https://github.com/apache/incubator-seata/pull/1408)] change ChannelFactory package in TmRpcClientTest
+- [[#1432](https://github.com/apache/incubator-seata/pull/1432)] implement equals and hashcode of the object that is used as the hash key
+- [[#1429](https://github.com/apache/incubator-seata/pull/1429)] remove unused imports
+- [[#1426](https://github.com/apache/incubator-seata/pull/1426)] fix syntax error
+- [[#1425](https://github.com/apache/incubator-seata/pull/1425)] fix typo
+- [[#1356](https://github.com/apache/incubator-seata/pull/1356)] optimize sql join
+- [[#1416](https://github.com/apache/incubator-seata/pull/1416)] optimize some javadoc comments
+- [[#1417](https://github.com/apache/incubator-seata/pull/1417)] optimize oracle keyword
+- [[#1404](https://github.com/apache/incubator-seata/pull/1404)] optimize BranchStatus comments
+- [[#1414](https://github.com/apache/incubator-seata/pull/1414)] optimize mysql keywords
+- [[#1407](https://github.com/apache/incubator-seata/pull/1407)] disable unstable unit tests
+- [[#1398](https://github.com/apache/incubator-seata/pull/1398)] optimize eureka registry serviceUrl with default port
+- [[#1364](https://github.com/apache/incubator-seata/pull/1364)] optimize table columns name defined as constants
+- [[#1389](https://github.com/apache/incubator-seata/pull/1389)] add the oracle support prompt information
+- [[#1375](https://github.com/apache/incubator-seata/pull/1375)] add compareRows failed log
+- [[#1358](https://github.com/apache/incubator-seata/pull/1358)] clean temporary file file runs when UT is finished
+- [[#1355](https://github.com/apache/incubator-seata/pull/1355)] add test case for rpc protocol
+- [[#1357](https://github.com/apache/incubator-seata/pull/1357)] code clean of Consul&Etcd config center implementations
+- [[#1345](https://github.com/apache/incubator-seata/pull/1345)] code clean and modify log level
+- [[#1329](https://github.com/apache/incubator-seata/pull/1329)] add `STORE_FILE_DIR` default value
+
+  Thanks to these contributors for their code commits. Please report an unintended omission.
+
+- [slievrly](https://github.com/slievrly)
+- [Justice-love](https://github.com/Justice-love)
+- [l81893521](https://github.com/l81893521)
+- [ggndnn](https://github.com/ggndnn)
+- [zjinlei](https://github.com/zjinlei)
+- [andyqian](https://github.com/andyqian)
+- [cmonkey](https://github.com/cmonkey)
+- [wangjin](https://github.com/wangjin)
+- [Arlmls](https://github.com/Arlmls)
+- [lukairui](https://github.com/lukairui)
+- [kongwang](https://github.com/kongwang)
+- [lightClouds917](https://github.com/lightClouds917)
+- [xingfudeshi](https://github.com/xingfudeshi)
+- [alicexiaoshi](https://github.com/alicexiaoshi)
+- [itxingqing](https://github.com/itxingqing)
+- [wanghuizuo](https://github.com/wanghuizuo)
+- [15168326318](https://github.com/15168326318)
+- [github-ygy](https://github.com/github-ygy)
+- [ujjboy](https://github.com/ujjboy)
+- [leizhiyuan](https://github.com/leizhiyuan)
+- [vikenlove](https://github.com/vikenlove)
+
+  Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.7.1 (2019-07-15)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.7.1.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.7.1/seata-server-0.7.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.7.1
+
+Seata 0.7.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Bugfix & Optimize
+
+- [[#1297](https://github.com/apache/incubator-seata/pull/1297)] seata-spring add dependency seata-codec-all
+- [[#1305](https://github.com/apache/incubator-seata/pull/1305)] fix unable to instantiate org.springframework.cloud.alibaba.seata.GlobalTransactionAutoConfiguration
+- fix in the 0.7.0 version, unable to get the seata dependency problem from the central repository
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.7.0 (2019-07-12)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.7.0.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.7.0/seata-server-0.7.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.7.0
+
+Seata 0.7.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#1276](https://github.com/apache/incubator-seata/pull/1276)] New RPC protocol
+- [[#1266](https://github.com/apache/incubator-seata/pull/1266)] add enabled configuration for metrics ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1236](https://github.com/apache/incubator-seata/pull/1236)] support metrics for tc server
+- [[#1214](https://github.com/apache/incubator-seata/pull/1214)] add config `shutdown.wait` and update version to 0.7.0-SNAPSHOT ([1212](https://github.com/apache/incubator-seata/issues/1212))
+- [[#1206](https://github.com/apache/incubator-seata/pull/1206)] setting default values using trinomial operators
+- [[#1174](https://github.com/apache/incubator-seata/pull/1174)] add nacos config initialization python script ([1172](https://github.com/apache/incubator-seata/issues/1172))
+- [[#1145](https://github.com/apache/incubator-seata/pull/1145)] Change LockMode from MEMORY to DB when the StoreMode is DB
+- [[#1125](https://github.com/apache/incubator-seata/pull/1125)] Add protostuff as serializer of UndoLogParser.
+- [[#1007](https://github.com/apache/incubator-seata/pull/1007)] support protobuf feature ([97](https://github.com/apache/incubator-seata/issues/97))
+
+#### Bugfix & Optimize
+
+- [[#1286](https://github.com/apache/incubator-seata/pull/1286)] bugfix: add some configuration and exclude log dependency ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1278](https://github.com/apache/incubator-seata/pull/1278)] bugfix: pass txId into TCC interceptor
+- [[#1274](https://github.com/apache/incubator-seata/pull/1274)] 1. optimization SQL join
+- [[#1271](https://github.com/apache/incubator-seata/pull/1271)] bugfix: @GlobalLock get error with Response ([97](https://github.com/apache/incubator-seata/issues/97), [1224](https://github.com/apache/incubator-seata/issues/1224))
+- [[#1270](https://github.com/apache/incubator-seata/pull/1270)] bugfix: print error exception
+- [[#1269](https://github.com/apache/incubator-seata/pull/1269)] bugfix: fix TMClinet reconnect exception
+- [[#1265](https://github.com/apache/incubator-seata/pull/1265)] Invoke addBatch of targetStatement if not in global transaction
+- [[#1264](https://github.com/apache/incubator-seata/pull/1264)] configuration:update ignore and coverage ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1263](https://github.com/apache/incubator-seata/pull/1263)] docs: add doc about contribution ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1262](https://github.com/apache/incubator-seata/pull/1262)] bugfix: fix find target class issue if scan the web scope bean such a… ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1261](https://github.com/apache/incubator-seata/pull/1261)] add warn log when fail to get auto-generated keys. (#1259) ([97](https://github.com/apache/incubator-seata/issues/97), [1259](https://github.com/apache/incubator-seata/issues/1259))
+- [[#1258](https://github.com/apache/incubator-seata/pull/1258)] move metrics config keys and simplify metrics modules dependency
+- [[#1250](https://github.com/apache/incubator-seata/pull/1250)] fix codecov for protobuf ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1245](https://github.com/apache/incubator-seata/pull/1245)] refactor metrics let it initialize by configuration
+- [[#1242](https://github.com/apache/incubator-seata/pull/1242)] perfect sql
+- [[#1239](https://github.com/apache/incubator-seata/pull/1239)] bugfix:fix CME in ZK discovery implementation. ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1237](https://github.com/apache/incubator-seata/pull/1237)] bugfix:server start and handle remain branch session may cause NPE ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1232](https://github.com/apache/incubator-seata/pull/1232)] Add unit tests for io.seata.common.util CompressUtil, DurationUtil, ReflectionUtil
+- [[#1230](https://github.com/apache/incubator-seata/pull/1230)] prioritize global transaction scanner #1227 ([97](https://github.com/apache/incubator-seata/issues/97), [1227](https://github.com/apache/incubator-seata/issues/1227))
+- [[#1229](https://github.com/apache/incubator-seata/pull/1229)] fix a typo ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1225](https://github.com/apache/incubator-seata/pull/1225)] optimize the name of seata config environment. ([97](https://github.com/apache/incubator-seata/issues/97), [1209](https://github.com/apache/incubator-seata/issues/1209))
+- [[#1222](https://github.com/apache/incubator-seata/pull/1222)] fix bug of refresh cluster ([1160](https://github.com/apache/incubator-seata/issues/1160))
+- [[#1221](https://github.com/apache/incubator-seata/pull/1221)] bugfix: fix in which SQL and database field names are inconsistent#1217 ([1217](https://github.com/apache/incubator-seata/issues/1217))
+- [[#1218](https://github.com/apache/incubator-seata/pull/1218)] bugfix:containsPK ignoreCase ([1217](https://github.com/apache/incubator-seata/issues/1217))
+- [[#1210](https://github.com/apache/incubator-seata/pull/1210)] 1. optimize arrayList single value
+- [[#1207](https://github.com/apache/incubator-seata/pull/1207)] All overriding methods must be preceded by @Override annotations.
+- [[#1205](https://github.com/apache/incubator-seata/pull/1205)] remove useless code
+- [[#1202](https://github.com/apache/incubator-seata/pull/1202)] output branchRollback failed log ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1200](https://github.com/apache/incubator-seata/pull/1200)] bugfix:DefaultCoreTest.branchRegisterTest ([1199](https://github.com/apache/incubator-seata/issues/1199))
+- [[#1198](https://github.com/apache/incubator-seata/pull/1198)] check the third-party dependencies license ([1197](https://github.com/apache/incubator-seata/issues/1197))
+- [[#1195](https://github.com/apache/incubator-seata/pull/1195)] Clear the transaction context in TCC prepare methed
+- [[#1193](https://github.com/apache/incubator-seata/pull/1193)] Get lockmode by the storemode
+- [[#1190](https://github.com/apache/incubator-seata/pull/1190)] remove unused semicolons ([97](https://github.com/apache/incubator-seata/issues/97), [540](https://github.com/apache/incubator-seata/issues/540))
+- [[#1179](https://github.com/apache/incubator-seata/pull/1179)] fix jackson default content
+- [[#1177](https://github.com/apache/incubator-seata/pull/1177)] write session may be failed,throw TransactionException but hold lock. ([97](https://github.com/apache/incubator-seata/issues/97), [1154](https://github.com/apache/incubator-seata/issues/1154))
+- [[#1169](https://github.com/apache/incubator-seata/pull/1169)] bugfix: use Set to avoid duplicate listeners. fixes #1126 ([1126](https://github.com/apache/incubator-seata/issues/1126))
+- [[#1165](https://github.com/apache/incubator-seata/pull/1165)] add a missing placeholder in INSERT_UNDO_LOG_SQL ([1164](https://github.com/apache/incubator-seata/issues/1164))
+- [[#1162](https://github.com/apache/incubator-seata/pull/1162)] Reset initialized flag & instance while destroy(). split [##1105 ([983](https://github.com/apache/incubator-seata/issues/983), [97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1159](https://github.com/apache/incubator-seata/pull/1159)] bugfix: AT mode resourceId(row_key) too long ([97](https://github.com/apache/incubator-seata/issues/97), [1158](https://github.com/apache/incubator-seata/issues/1158))
+- [[#1150](https://github.com/apache/incubator-seata/pull/1150)] updates seata's version in README.md ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1148](https://github.com/apache/incubator-seata/pull/1148)] bugfix:the buffer may cause overflows when sql statement is long
+- [[#1146](https://github.com/apache/incubator-seata/pull/1146)] revise the package name of the module ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1105](https://github.com/apache/incubator-seata/pull/1105)] refactor TmRpcClient & RmClient for common use. ([97](https://github.com/apache/incubator-seata/issues/97))
+- [[#1075](https://github.com/apache/incubator-seata/pull/1075)] Multiple environmental isolation
+- [[#768](https://github.com/apache/incubator-seata/pull/768)] #751 add event bus mechanism and apply it in tc
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.6.1 (2019-05-31)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.6.1.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.6.1/seata-server-0.6.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.6.1
+
+Seata 0.6.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#1119](https://github.com/apache/incubator-seata/pull/1119)] support weibo/motan
+- [[#1075](https://github.com/apache/incubator-seata/pull/1075)] Multiple environmental isolation
+
+#### Bugfix & Optimize
+
+- [[#1099](https://github.com/apache/incubator-seata/pull/1099)] UndoLogParser change to SPI
+- [[#1113](https://github.com/apache/incubator-seata/pull/1113)] optimize check style
+- [[#1087](https://github.com/apache/incubator-seata/pull/1087)] Remove unnecessary copy of bytes
+- [[#1090](https://github.com/apache/incubator-seata/pull/1090)] Change the method definition of UndoLogParser for better extensibility
+- [[#1120](https://github.com/apache/incubator-seata/pull/1120)] bugfix : use xid wrong when do branch commit and rollback
+- [[#1135](https://github.com/apache/incubator-seata/pull/1135)] bugfix:zk vulnerability and optimize dependencies
+- [[#1138](https://github.com/apache/incubator-seata/pull/1138)] bugfix: seata-server.bat classpath too long
+- [[#1117](https://github.com/apache/incubator-seata/pull/1117)] bugfix: fix field type is datetime equals fail
+- [[#1115](https://github.com/apache/incubator-seata/pull/1115)] modify seata-all & seata-bom deploy config
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.6.0 (2019-05-24)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.6.0.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.6.0/seata-server-0.6.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.6.0
+
+Seata 0.6.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#942](https://github.com/apache/incubator-seata/pull/942)] Store the transaction log into database
+- [[#1014](https://github.com/apache/incubator-seata/pull/1014)] Support etcd3 as configuration center
+- [[#1060](https://github.com/apache/incubator-seata/pull/1060)] Do data validation when undo
+
+#### Bugfix & Optimize
+
+- [[#1064](https://github.com/apache/incubator-seata/pull/1064)] bugfix:size wrong between xid and branchId
+- [[#1074](https://github.com/apache/incubator-seata/pull/1074)] bugfix:typos and replace AIT's with lambdas
+- [[#824](https://github.com/apache/incubator-seata/pull/824)] Add time limit when transaction retry on the server
+- [[#1082](https://github.com/apache/incubator-seata/pull/1082)] add Cache configuration instance
+- [[#1084](https://github.com/apache/incubator-seata/pull/1084)] Refactor Charset using and blob utils
+- [[#1080](https://github.com/apache/incubator-seata/pull/1080)] upgrade fastjson and nacos-client
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.5.2 (2019-05-17)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.5.2.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.5.2/seata-server-0.5.2.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.5.2
+
+Seata 0.5.2 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#988](https://github.com/apache/incubator-seata/pull/988)] support Consul configuration center
+- [[#1043](https://github.com/apache/incubator-seata/pull/1043)] support sofa-rpc
+
+#### Bugfix & Optimize
+
+- [[#987](https://github.com/apache/incubator-seata/pull/987)] optimize the use of reentrantLock instead of spinlock in concurrent scenarios within the same transaction
+- [[#943](https://github.com/apache/incubator-seata/pull/943)] fix configuration wait timeout when there is no corresponding file configuration item
+- [[#965](https://github.com/apache/incubator-seata/pull/965)] fix PreparedStatement where in,between problem
+- [[#929](https://github.com/apache/incubator-seata/pull/929)] optimize GlobalSession for the first time to wait for locks
+- [[#967](https://github.com/apache/incubator-seata/pull/967)] optimize partial log description
+- [[#970](https://github.com/apache/incubator-seata/pull/970)] fix unable to read flush-disk-mode configuration item problem
+- [[#916](https://github.com/apache/incubator-seata/pull/916)] optimize the readable index problem of decoding
+- [[#979](https://github.com/apache/incubator-seata/pull/979)] optimize copyright
+- [[#981](https://github.com/apache/incubator-seata/pull/981)] optimize pom dependencies, use caffine instead of guava cache, junit upgrade to junit5, use junit5 to transform original testng unit tests
+- [[#991](https://github.com/apache/incubator-seata/pull/991)] optimize the header of the core module import
+- [[#996](https://github.com/apache/incubator-seata/pull/996)] fix maven-surefire-plugin compilation error in mac environment
+- [[#994](https://github.com/apache/incubator-seata/pull/994)] Fix ByteBuffer multiple flip problem
+- [[#999](https://github.com/apache/incubator-seata/pull/999)] change the community's email subscription address
+- [[#861](https://github.com/apache/incubator-seata/pull/861)] optimize the FailureHandler to periodically get the retrieved transaction result and print the successful result
+- [[#802](https://github.com/apache/incubator-seata/pull/802)] optimize the lambda code style in GlobalTransactionalInterceptor
+- [[#1026](https://github.com/apache/incubator-seata/pull/1026)] fix troubleshooting for data\* code files, add local transaction file exclusion path
+- [[#1024](https://github.com/apache/incubator-seata/pull/1024)] fix Consul module SPI configuration file path problem
+- [[#1023](https://github.com/apache/incubator-seata/pull/1023)] add the seata-all.jar for client full dependency
+- [[#1029](https://github.com/apache/incubator-seata/pull/1029)] fix the delay rollback caused by no channel when the client is restarting
+- [[#1027](https://github.com/apache/incubator-seata/pull/1027)] fix release-seata can not generate zip file problem
+- [[#1033](https://github.com/apache/incubator-seata/pull/1033)] fix createDependencyReducedPom to generate redundant xml problem
+- [[#1035](https://github.com/apache/incubator-seata/pull/1035)] fix branchCommit/branchRollback in TCC mode, but branchId is null
+- [[#1040](https://github.com/apache/incubator-seata/pull/1040)] refactor exceptionHandleTemplate and fix the problem that cannot be returned when the GlobalRollback branch throw exception
+- [[#1036](https://github.com/apache/incubator-seata/pull/1036)] replace Chinese comment with English comment
+- [[#1051](https://github.com/apache/incubator-seata/pull/1051)] optimize to check data changes when rollback, stop rollback if there is no data change
+- [[#1017](https://github.com/apache/incubator-seata/pull/1017)] optimize the processing logic of mysql undo executor construct undo sql
+- [[#1063](https://github.com/apache/incubator-seata/pull/1063)] fix the problem that the new transaction id conflict fails after the server is restarted after the server is restarted
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.5.1 (2019-04-30)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.5.1.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.5.1/seata-server-0.5.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.5.1
+
+Seata 0.5.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#774](https://github.com/apache/incubator-seata/pull/869)] support Etcd3 registration center
+- [[#793](https://github.com/apache/incubator-seata/pull/793)] support sofa-registry registration center
+- [[#856](https://github.com/apache/incubator-seata/pull/856)] add batch delete undolog processing
+- [[#786](https://github.com/apache/incubator-seata/pull/786)] support for branch transaction concurrency in global transactions
+
+#### Bugfix & Optimize
+
+- [[#879](https://github.com/apache/incubator-seata/pull/879)] fix when batch delete undolog,the preparedStatement does not close
+- [[#945](https://github.com/apache/incubator-seata/pull/945)] add the releaseLock method in the LockManager interface to optimize the calling logic
+- [[#938](https://github.com/apache/incubator-seata/pull/938)] optimize the TransactionManager service loading logic
+- [[#913](https://github.com/apache/incubator-seata/pull/913)] optimize the module structure of the RPC integration framework
+- [[#795](https://github.com/apache/incubator-seata/pull/795)] optimize the performance of server node write files
+- [[#921](https://github.com/apache/incubator-seata/pull/921)] fix NPE exception when select for update
+- [[#925](https://github.com/apache/incubator-seata/pull/925)] optimize the same DefaultCoordinator instance when the server starts
+- [[#930](https://github.com/apache/incubator-seata/pull/930)] optimize field access modifiers
+- [[#907](https://github.com/apache/incubator-seata/pull/907)] fix hostname can't be null exception
+- [[#923](https://github.com/apache/incubator-seata/pull/923)] fix the problem that the key is not formatted when the nettyClientKeyPool connection is destroyed
+- [[#891](https://github.com/apache/incubator-seata/pull/891)] fix the NPE exception when using select union all
+- [[#888](https://github.com/apache/incubator-seata/pull/888)] fix copyright checkstyle verification
+- [[#901](https://github.com/apache/incubator-seata/pull/901)] fix parent node path does not exist when Zookeeper is registered
+- [[#904](https://github.com/apache/incubator-seata/pull/904)] optimize updated data query logic in UpdateExecutort
+- [[#802](https://github.com/apache/incubator-seata/pull/802)] optimize checkstyle and add plugins
+- [[#882](https://github.com/apache/incubator-seata/pull/882)] modify copyright, add copyright automatic plugin
+- [[#874](https://github.com/apache/incubator-seata/pull/874)] add the communication default configuration value
+- [[#866](https://github.com/apache/incubator-seata/pull/866)] fix unable to generate dubbo:reference proxy class
+- [[#877](https://github.com/apache/incubator-seata/pull/877)] fix concurrentModifyException when batch deleting undolog
+- [[#855](https://github.com/apache/incubator-seata/pull/855)] optimize the globalCommit always returns committed to the user in AT mode
+- [[#875](https://github.com/apache/incubator-seata/pull/875)] fix select for update, Boolean cast ResultSet failed
+- [[#830](https://github.com/apache/incubator-seata/pull/830)] fix RM late registration problem
+- [[#872](https://github.com/apache/incubator-seata/pull/872)] fix RegisterRMRequest decoding message length check is not accurate
+- [[#831](https://github.com/apache/incubator-seata/pull/831)] optimize CountDownLatch in MessageFuture and replace it with CompletableFuture
+- [[#834](https://github.com/apache/incubator-seata/pull/834)] fix non-SQLException in ExecuteTemplate does not throw a exception
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.5.0 (2019-04-19)
+
+- [source](https://github.com/apache/incubator-seata/archive/0.5.0.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/0.5.0/seata-server-0.5.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.5.0
+
+Seata 0.5.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Compatibility
+
+- [[#809](https://github.com/apache/incubator-seata/pull/809)] Change groupId,artifactId, and package
+- [[#815](https://github.com/apache/incubator-seata/pull/815)] Add maven plugin to release seata with groupId io.seata
+- [[#790](https://github.com/apache/incubator-seata/pull/790)] Change the startup parameters of seata-server to support database-storage
+- [[#769](https://github.com/apache/incubator-seata/pull/769)] Modify the RPC protocol, remove the client's resolution of xid to be stateless
+
+#### Feature
+
+- [[#774](https://github.com/apache/incubator-seata/pull/774)] optimizes the structure of config module and discovery module
+- [[#783](https://github.com/apache/incubator-seata/pull/783)] Allow users config the count for client report retry dynamicly
+- [[#791](https://github.com/apache/incubator-seata/pull/791)] replace magic judgement of timeout status with status enum
+- [[#836](https://github.com/apache/incubator-seata/pull/836)] Use maven-compiler-plugin to revision the version and add mvnw script to unify the maven version
+- [[#820](https://github.com/apache/incubator-seata/pull/820)] Add rollback on for GlobalTransaction
+
+#### Bugfix
+
+- [[#772](https://github.com/apache/incubator-seata/pull/772)] Fix FileConfiguration config listener logic
+- [[#807](https://github.com/apache/incubator-seata/pull/807)] Optimize the setting of full name of FileBasedSessionManager
+- [[#804](https://github.com/apache/incubator-seata/pull/804)] bugfix:branchCommit retry always failed
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.4.2 (2019-04-12)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.4.2.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.4.2/fescar-server-0.4.2.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.4.2
+
+Seata 0.4.2 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#704](https://github.com/apache/incubator-seata/pull/704)] add local file write ByteBuffer pool
+- [[#679](https://github.com/apache/incubator-seata/issues/679)] The existing registry adds the implementation of the close interface, which optimizes the server's elegant offline
+- [[#713](https://github.com/apache/incubator-seata/pull/713)] add local file writes enable compression for messages that exceed the configured size
+- [[#587](https://github.com/apache/incubator-seata/issues/587)] Added MySQL DDL statement support
+- [[#717](https://github.com/apache/incubator-seata/pull/717)] add Nacos Initialization Configuration Script Configuration and Completion Program Configuration File
+- [[#726](https://github.com/apache/incubator-seata/pull/726)] support for DBCP, C3P0, BoneCP, HikariCP and Tomcat-JDBC connection pools
+- [[#744](https://github.com/apache/incubator-seata/pull/744)] add ZooKeeper disconnection re-registration and subscription when reconnected
+- [[#728](https://github.com/apache/incubator-seata/pull/728)] Supports service discovery with Consul
+
+#### Bugfix
+
+- [[#569](https://github.com/apache/incubator-seata/pull/695)] fix already jdk proxy and no target only traverses the first implementation interface problem
+- [[#721](https://github.com/apache/incubator-seata/pull/721)] fix ConfigFuture constructor timeout parameter does not work
+- [[#725](https://github.com/apache/incubator-seata/pull/725)] fix MergedSendRunnable channel is unexpectedly closed, and add fail-fast
+- [[#723](https://github.com/apache/incubator-seata/pull/723)] fix defaultServerMessageListener is not initialized
+- [[#746](https://github.com/apache/incubator-seata/pull/746)] fix the failure of the test module caused by the DataSourceManager SPI
+- [[#754](https://github.com/apache/incubator-seata/pull/754)] optimize Eureka registry
+- [[#750](https://github.com/apache/incubator-seata/pull/750)] fix undolog caused by DataSourceManager SPI cannot delete problem
+- [[#747](https://github.com/apache/incubator-seata/pull/747)] Delete MT mode, then will be replaced by TCC mode
+- [[#757](https://github.com/apache/incubator-seata/pull/757)] fix rollback caused by RPC exception when performing BranchRollback retry
+- [[#776](https://github.com/apache/incubator-seata/pull/776)] fix connection creation failure caused by toString exception when connection pool creates channel
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.4.1 (2019-03-29)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.4.1.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.4.1/fescar-server-0.4.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.4.1
+
+Seata 0.4.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+- TBD
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.4.0 (2019-03-19)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.4.0.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.4.0/fescar-server-0.4.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.4.0
+
+Seata 0.4.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#583](https://github.com/alibaba/fescar/pull/583)] Add TCC model of Ant Financial to fescar, to suppot Local TCC bean,Dubbo TCC bean and SOFARPC TCC bean
+- [[#611](https://github.com/alibaba/fescar/pull/611)] Apply p3c pmd plugin/rules
+- [[#627](https://github.com/alibaba/fescar/pull/627)] Optimization dependency
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.3.1 (2019-03-15)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.3.1.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.3.1/fescar-server-0.3.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.3.1
+
+Seata 0.3.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#557](https://github.com/alibaba/fescar/issues/557)] add custom hook access point at each stage of the transaction process
+- [[#594](https://github.com/alibaba/fescar/pull/594)] support Zookeeper Registration Center
+
+#### Bugfix
+
+- [[#569](https://github.com/alibaba/fescar/issues/569)] fix eureka renew url encode
+- [[#551](https://github.com/alibaba/fescar/pull/551)] fix ConfigType NPE
+- [[#489](https://github.com/alibaba/fescar/issues/489)] fix GlobalRollback request but not receive report
+- [[#598](https://github.com/alibaba/fescar/pull/598)] fix blocker and critical level issues scanned by p3c
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.3.0 (2019-03-08)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.3.0.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.3.0/fescar-server-0.3.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.3.0
+
+Seata 0.3.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#510](https://github.com/alibaba/fescar/pull/510)] Support eureka registry center
+- [[#498](https://github.com/alibaba/fescar/pull/498)] Implement local transaction mode with global locks and resolve local transaction isolation issues
+
+#### Bugfix
+
+- [[#459](https://github.com/alibaba/fescar/issues/459)] Fix mysql keyword generating sql problem as table name and column name
+- [[#312](https://github.com/alibaba/fescar/issues/312)] Fix the original business sql no where condition generation sql error problem
+- [[#522](https://github.com/alibaba/fescar/issues/522)] Fix file path security vulnerability
+- Remove useless, format, optimize import, javadoc, copyright for all module code
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.2.3 (2019-03-02)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.2.3.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.2.3/fescar-server-0.2.3.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.2.3
+
+Seata 0.2.3 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- [[#478](https://github.com/alibaba/fescar/pull/478)] Support redis registry and apollo configuration
+- [[#478](https://github.com/alibaba/fescar/pull/478)] Support redis registry and apollo configuration
+
+#### Bugfix
+
+- [[#462](https://github.com/alibaba/fescar/issues/462)] Separation configuration and registration judgment
+- [[#466](https://github.com/alibaba/fescar/issues/466)] Add run oldest task reject policy
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.2.2 (2019-02-22)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.2.2.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.2.2/fescar-server-0.2.2.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.2.2
+
+Seata 0.2.2 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+- Fixed several bugs
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.2.1 (2019-02-18)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.2.1.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.2.1/fescar-server-0.2.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.2.1
+
+Seata 0.2.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- Support BETWEEN in update statement
+- Add Random and RoundRobin LoadBalance
+- Add dubbo-alibaba module support Alibaba Dubbo
+
+#### Bugfix
+
+- Fix NettyClientConfig variable name isPoolFifo-> isPoolLifo
+- Fix fescar-dubbo filter SPI reference error
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.2.0 (2019-02-14)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.2.0.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.2.0/fescar-server-0.2.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.2.0
+
+Seata 0.2.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+#### Feature
+
+- Support MySQL distributed transaction automatic mode (AT)
+- Supports Dubbo seamless integration
+- Support for distributed transaction API
+- Support Spring transaction annotation
+- Support Mybatis、JPA
+- Support Nacos Service Registration and Configuration Center
+- Add Fescar-Server automatic recovery from file unfinished transaction operations to memory when restarting
+- Support multiple IP environment, start server to specify IP parameters
+
+#### Bugfix
+
+- Fix Fescar-Server restart may cause XID duplication
+- Fix Windows startup script $EXTRA_JVM_ARGUMENTS parameter error
+- Fix distributed transaction local nested inner transaction commit/rollback causes outer transaction exception problem
+- Fix local transaction commit exception, local transaction does not rollback problem
+- Fix MySQL table alias resolution
+
+#### other
+
+- Upgrade depends on JDK version to 1.8
+- Upgrade dependency Alibaba Dubbo to Apache Dubbo 2.7.0
+- Optimize related dependency references
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.1.4 (2019-02-11)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.1.4.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.1.4/fescar-server-0.1.4.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.1.4
+
+Seata 0.1.4 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+- Fixed several bugs
+- Upgrade jdk version to 1.8
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.1.3 (2019-01-29)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.1.3.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.1.3/fescar-server-0.1.3.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.1.3
+
+Seata 0.1.3 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+- Fixed several bugs
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.1.2 (2019-01-25)
+
+- [source](https://github.com/apache/incubator-seata/archive/V0.1.2.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/V0.1.2/fescar-server-0.1.2.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.1.2
+
+Seata 0.1.2 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+- Fixed several bugs
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.1.1 (2019-01-18)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.1.1.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.1.1/fescar-server-0.1.1.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.1.1
+
+Seata 0.1.1 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+- Fixed several bugs
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
+
+### 0.1.0 (2019-01-09)
+
+- [source](https://github.com/apache/incubator-seata/archive/v0.1.0.zip)
+- [binary](https://github.com/apache/incubator-seata/releases/download/v0.1.0/fescar-server-0.1.0.zip)
+
+<details>
+  <summary><mark>Release notes</mark></summary>
+
+### Seata 0.1.0
+
+Seata 0.1.0 Released.
+
+Seata is an easy-to-use, high-performance, open source distributed transaction solution.
+
+The version is updated as follows:
+
+- Support MySQL in AT Mode
+- Support Dubbo
+- API Provided
+- Spring based annotation Provided
+- Standalone server
+
+#### Link
+
+- **Seata:** https://github.com/apache/incubator-seata
+- **Seata-Samples:** https://github.com/apache/incubator-seata-samples
+- **Release:** https://github.com/apache/incubator-seata/releases
+
+</details>
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/security/secret-key.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/security/secret-key.md
new file mode 100644
index 00000000000..b8cad181826
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/security/secret-key.md
@@ -0,0 +1,27 @@
+---
+title: SecretKey Security
+keywords: [Seata]
+description: SecretKey Security Announcement.
+---
+
+# SecretKey Security Announcement
+
+## Background
+Since version 1.5.0, Seata has provided a user console called Seata-Console. The user console offers query functionality for global transactions and branch transactions, allowing users to easily search for global transactions, branch transactions, and global lock information based on various matching conditions. This can help users quickly locate and troubleshoot issues.
+
+To log into Seata-Console, users need to enter a username and password. Seata-Console sends the username and password to the backend service, which verifies their correctness. If correct, it generates a time-sensitive JWT token based on a SecretKey and returns it to the frontend. On subsequent visits, the frontend carries the JWT token information and sends it to the backend. The backend verifies the token's validity and, if correct, returns the data; if incorrect, it denies access.
+
+In Seata-Console's default configuration file, there are default settings for the username, password, and SecretKey. In a production environment, users must change these default username, password, and SecretKey settings to ensure security. Below are configuration recommendations for the production environment for your reference.
+
+## Production Solution
+- In a production environment, prohibit unnecessary public network access. If public network access is required, configure firewalls or ACL rules to restrict IP access. Even though Seata-Console does not store or display sensitive data, we strongly recommend that you do so.
+- When deploying Seata-Console for the first time, it is essential to change the default username, password, and SecretKey before deployment to avoid the risk of data leakage or intrusion due to default credentials. You need to modify `seata.console.user.username`, `seata.user.password`, and `seata.security.secretKey` in the application.yml configuration file. In a Kubernetes deployment mode, you can manage this information independently and hierarchically using ConfigMap/Secret resource [...]
+```yml
+console:
+  user:
+    username: ${SEATA_CONSOLE_USERNAME}
+    password: ${SEATA_CONSOLE_PASSWORD}
+seata:
+  security:
+    secretKey: ${SEATA_SECRET_KEY}
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/api.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/api.md
new file mode 100644
index 00000000000..8f36949d1a0
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/api.md
@@ -0,0 +1,402 @@
+---
+title: Api Guide
+keywords: [Seata]
+description: Api Guide.
+---
+
+# 1. Overview
+
+Seata API is devided into 2 categories: High-Level API and Low-Level API
+
+- **High-Level API** : Used for defining and controlling transaction boundary, and querying transaction status.
+- **Low-Level API** : Used for controlling the propagation of transaction context.
+
+# 2. High-Level API
+
+## 2.1 GlobalTransaction
+
+GlobalTransaction class contains methods about begin transaction, commit transaction, rollback transaction and get status of transaction and so on.
+
+```java
+public interface GlobalTransaction {
+
+    /**
+     * Begin a global transaction(Use default transaction name and timeout)
+     */
+    void begin() throws TransactionException;
+
+    /**
+     * Begin a global transaction, and point out the timeout(use default transaction name)
+     */
+    void begin(int timeout) throws TransactionException;
+
+    /**
+     * Begin a global transaction, and point out the transaction name and timeout.
+     */
+    void begin(int timeout, String name) throws TransactionException;
+
+    /**
+     * Commit globally
+     */
+    void commit() throws TransactionException;
+
+    /**
+     * Rollback globally
+     */
+    void rollback() throws TransactionException;
+
+    /**
+     * Get the status of transaction
+     */
+    GlobalStatus getStatus() throws TransactionException;
+
+    /**
+     * Get the XID of transaction
+     */
+    String getXid();
+
+}
+```
+
+## 2.2 GlobalTransactionContext
+
+GlobalTransaction instance can be retrieved from GlobalTransactionContext:
+
+```java
+
+    /**
+     * Retrieve current global transaction instance, if it doesn't exist, create a new one.
+     */
+    public static GlobalTransaction getCurrentOrCreate() {
+        GlobalTransaction tx = getCurrent();
+        if (tx == null) {
+            return createNew();
+        }
+        return tx;
+    }
+
+    /**
+     * Reload the global transaction identified by XID, the instance aren't allowed to begin transaction.
+     * This API is usually used for centralized handling of failed transaction later.
+     * For example, if it's time out to commit globally, the subsequent centralized processing steps are like this: reload the instance, from which retrieve the status, then recommit the transaction globally or not depends on the status value.
+     */
+    public static GlobalTransaction reload(String xid) throws TransactionException {
+        GlobalTransaction tx = new DefaultGlobalTransaction(xid, GlobalStatus.UnKnown, GlobalTransactionRole.Launcher) {
+            @Override
+            public void begin(int timeout, String name) throws TransactionException {
+                throw new IllegalStateException("Never BEGIN on a RELOADED GlobalTransaction. ");
+            }
+        };
+        return tx;
+    }
+```
+
+## 2.3 TransactionalTemplate
+
+TransactionalTemplate: Wrap a business service invoke into  a distributed transaction supported  service with preceding GlobalTransaction and GlobalTransactionContext API.
+
+```java
+public class TransactionalTemplate {
+
+    public Object execute(TransactionalExecutor business) throws TransactionalExecutor.ExecutionException {
+
+        // 1. Get current global transaction instance or create a new one
+        GlobalTransaction tx = GlobalTransactionContext.getCurrentOrCreate();
+
+        // 2. Begin the global transaction
+        try {
+            tx.begin(business.timeout(), business.name());
+
+        } catch (TransactionException txe) {
+            // 2.1 Fail to begin
+            throw new TransactionalExecutor.ExecutionException(tx, txe,
+                TransactionalExecutor.Code.BeginFailure);
+
+        }
+
+        Object rs = null;
+        try {
+            // 3. invoke service
+            rs = business.execute();
+
+        } catch (Throwable ex) {
+
+            // Exception from business service invoke
+            try {
+                // Rollback globally
+                tx.rollback();
+
+                // 3.1 Global rollback success, throw original business exception
+                throw new TransactionalExecutor.ExecutionException(tx, TransactionalExecutor.Code.RollbackDone, ex);
+
+            } catch (TransactionException txe) {
+                // 3.2 Global rollback failed
+                throw new TransactionalExecutor.ExecutionException(tx, txe,
+                    TransactionalExecutor.Code.RollbackFailure, ex);
+
+            }
+
+        }
+
+        // 4. Commit globally
+        try {
+            tx.commit();
+
+        } catch (TransactionException txe) {
+            // 4.1 Global commit failed
+            throw new TransactionalExecutor.ExecutionException(tx, txe,
+                TransactionalExecutor.Code.CommitFailure);
+
+        }
+        return rs;
+    }
+
+}
+```
+
+The exception of template method: ExecutionException
+
+```
+    class ExecutionException extends Exception {
+
+        // Transaction instance threw exception
+        private GlobalTransaction transaction;
+
+        // Exception code:
+        // BeginFailure(Fail to begin transaction)
+        // CommitFailure(Fail to commit globally)
+        // RollbackFailure(Fail to rollback globally)
+        // RollbackDone(Global rollback success)
+        private Code code;
+
+        // Original exception triggered by rollback
+        private Throwable originalException;
+```
+
+Outer calling logic try-catch the exception, and do something based on the exception code:
+
+- **BeginFailure** (Fail to begin transaction): getCause() gets the framework exception of begin transaction, getOriginalException() is null.
+- **CommitFailure**(Fail to commit globally):  getCause() gets the framework exception of commit transaction, getOriginalException() is null.
+- **RollbackFailure** (Fail to rollback globally):getCause() gets the framework exception of rollback transaction,getOriginalException() gets the original exception of business invoke.
+- **RollbackDone**(Global rollback success): getCause()  is null, getOriginalException() gets the original exception of business invoke.
+
+# 3. Low-Level API
+
+## 3.1 RootContext
+
+RootContext: It's responsible for maintaining XID during runtime of application.
+
+```java
+    /**
+     * Get the global XID of the current running application
+     */
+    public static String getXID() {
+        return CONTEXT_HOLDER.get(KEY_XID);
+    }
+
+    /**
+     * Bind the global XID to the current application runtime
+     */
+    public static void bind(String xid) {
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("bind " + xid);
+        }
+        CONTEXT_HOLDER.put(KEY_XID, xid);
+    }
+
+    /**
+     * Unbind the global XID from the current application runtime, and return XID
+     */
+    public static String unbind() {
+        String xid = CONTEXT_HOLDER.remove(KEY_XID);
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("unbind " + xid);
+        }
+        return xid;
+    }
+
+    /**
+     * Check if the current application runtime is in the global transaction context
+     */
+    public static boolean inGlobalTransaction() {
+        return CONTEXT_HOLDER.get(KEY_XID) != null;
+    }
+```
+The implementation of High-Level API is based on maintaining XID in the RootContext.
+
+Whether or not the operation of the current running application is in a global transaction context, just check if there is an XID in the RootContext.
+
+The default implementation of RootContext is based on ThreadLocal, which is the XID is in the context of current thread.
+
+Two classic scenes of Low-Level API :
+
+### 1. The propagation of transaction context by remote invoke
+
+Retrieve current XID by remote invoke:
+
+```java
+String xid = RootContext.getXID();
+```
+
+Propagating the XID to the provider of service by RPC, bind the XID to current RootContext before executing the business logic of provider.
+
+```java
+RootContext.bind(rpcXid);
+```
+
+### 2. Pause and recover of transaction
+
+In a global transaction, if some business logic shouldn't be in the scope of the global transaction, unbind XID before invoke it.
+
+```java
+String unbindXid = RootContext.unbind();
+```
+Rebind the XID back after the execution of related business logic to achieve recovering the global transaction.
+
+```java
+RootContext.bind(unbindXid);
+```
+
+
+
+# 4. TCC API
+
+TCC interface definition
+```java
+public interface NormalTccAction {
+
+    /**
+     * Prepare boolean.
+     *
+     * @param a             the a
+     * @param b             the b
+     * @param tccParam      the tcc param
+     * @return the boolean
+     */
+    String prepare(int a, List b, TccParam tccParam);
+
+    /**
+     * Commit boolean.
+     *
+     * @param actionContext the action context
+     * @return the boolean
+     */
+    boolean commit(BusinessActionContext actionContext, TccParam param);
+
+    /**
+     * Rollback boolean.
+     *
+     * @param actionContext the action context
+     * @return the boolean
+     */
+    boolean rollback(BusinessActionContext actionContext, TccParam param);
+}
+```
+
+TCC interface definition implementation
+```java
+@LocalTCC
+public class NormalTccActionImpl implements NormalTccAction {
+
+    @TwoPhaseBusinessAction(name = "tccActionForTest", commitMethod = "commit", rollbackMethod = "rollback", commitArgsClasses = {BusinessActionContext.class, TccParam.class}, rollbackArgsClasses = {BusinessActionContext.class, TccParam.class})
+    @Override
+    public String prepare(@BusinessActionContextParameter("a") int a,
+                          @BusinessActionContextParameter(paramName = "b", index = 0) List b,
+                          @BusinessActionContextParameter(isParamInProperty = true) TccParam tccParam) {
+        return "a";
+    }
+
+    @Override
+    public boolean commit(BusinessActionContext actionContext,
+                          @BusinessActionContextParameter("tccParam") TccParam param) {
+        return false;
+    }
+
+    @Override
+    public boolean rollback(BusinessActionContext actionContext, @BusinessActionContextParameter("tccParam") TccParam param) {
+        return false;
+    }
+
+    public boolean otherMethod(){
+        return true;
+    }
+
+}
+```
+
+TCC API usage
+```java
+    @Test
+    public void testTcc() {
+
+        // Instantiate an un-proxied TCC interface implementation class
+        NormalTccAction tccAction = new NormalTccActionImpl();
+
+        // Create a proxy TCC interface class using the proxy tool ProxyUtil
+        NormalTccAction tccActionProxy = ProxyUtil.createProxy(tccAction);
+
+        // Obtain TCC interface parameters
+        TccParam tccParam = new TccParam(1, "abc@163.com");
+        List<String> listB = Arrays.asList("b");
+
+        // TCC Phase 1 submission
+        String result = tccActionProxy.prepare(0, listB, tccParam);
+
+        // verification
+        Assertions.assertEquals("a", result);
+        Assertions.assertNotNull(result);
+        Assertions.assertEquals("tccActionForTest", branchReference.get());
+
+    }
+```
+Brief description
+- 1,First, define the TCC interface: prepare, confirm, and rollback.
+- 2,Implementation interface. Note: The annotation @LocalTCC should be modified on the implementation class, and the annotation @TwoPhaseBusinessAction should be modified on the implementation class method prepare. You can pass parameters through BusinessActionContext.
+- 3,Create a TCC proxy object using ProxyUtil.createProxy (T target).
+- 4,Commit in phase 1 with the proxy class.
+
+## 4.1 TCC Annotation Description
+
+TCC has two core annotations, TwoPhaseBusinessAction and LocalTCC.
+
+### 4.1.1 @TwoPhaseBusinessAction
+
+@TwoPhaseBusinessAction indicates that the current method uses the TCC mode to manage transaction submission.
+
+- The name attribute registers a globally unique TCC bean name for the current transaction.
+
+As in the code example, name = "TccActionOne"
+
+The three execution phases of the TCC mode are:
+
+- Try phase, reserve operation resources (Prepare)
+
+The methods executed in this phase are the methods modified by @TwoPhaseBusinessAction. For example, the prepare method in the sample code.
+
+- Confirm phase, execute the main business logic (Commit)
+
+This phase uses the method pointed to by the commitMethod attribute to perform the Confirm work.
+
+- Cancel phase, transaction rollback (Rollback)
+
+This phase uses the method pointed to by the rollbackMethod attribute to perform the Rollback work.
+
+### 4.1.2 @LocalTCC
+The @LocalTCC annotation is used to indicate the local TCC interface that implements the two-phase commit. If Dubbo is used as the RPC communication component, this annotation is not required.
+
+## 4.2 Important parameter description
+
+## 4.2.1 BusinessActionContext
+You can use this input parameter to pass query parameters in the transaction context in TCC mode. The following attributes:
+- xid global transaction id
+- branchId branch transaction id
+- actionName branch resource id, (resource id)
+- actionContext business transfer parameter Map, you can use @BusinessActionContextParameter to annotate the parameters that need to be passed.
+
+## 4.2.2 @BusinessActionContextParameter
+Use this annotation to annotate the parameters that need to be passed in the transaction context. The parameters modified by this annotation will be set in BusinessActionContext.
+You can use the getActionContext method of BusinessActionContext to obtain the passed business parameter values in the commit and rollback phases.
+As follows:
+```java
+context.getActionContext("id").toString();
+```
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/apm/prometheus.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/apm/prometheus.md
new file mode 100644
index 00000000000..92bcf922098
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/apm/prometheus.md
@@ -0,0 +1,79 @@
+---
+title: Prometheus
+keywords: [Seata]
+description: Seata supports enabling Metrics data collection in TC and outputting it to the Prometheus monitoring system.
+---
+
+# Prometheus Metrics Configuration Guide
+Seata supports enabling Metrics data collection in TC and outputting it to the Prometheus monitoring system.
+
+### Configure Metrics in TC
+#### Step 1: Open the Metrics configuration in TC
+
+Seata Server already includes the metrics (seata-metrics-all) dependency, but it is disabled by default. You need to enable the collection configuration for metrics.
+
+```yml
+seata:
+  metrics:
+    enabled: true
+    registry-type: compact
+    exporter-list: prometheus
+    exporter-prometheus-port: 9898
+
+```
+
+Enter `http://tc-server-ip:9898/metrics` to obtain the latest Metrics data, for example:
+```
+# HELP seata seata
+# TYPE seata untyped
+seata_transaction{meter="counter",role="tc",status="committed",} 1358.0 1551946035372
+seata_transaction{meter="counter",role="tc",status="active",} 0.0 1551946035372
+seata_transaction{meter="summary",role="tc",statistic="count",status="committed",} 6.0 1551946035372
+seata_transaction{meter="summary",role="tc",statistic="total",status="committed",} 6.0 1551946035372
+seata_transaction{meter="summary",role="tc",statistic="tps",status="committed",} 1.6163793103448276 1551946035372
+seata_transaction{meter="timer",role="tc",statistic="count",status="committed",} 6.0 1551946035372
+seata_transaction{meter="timer",role="tc",statistic="total",status="committed",} 910.0 1551946035372
+seata_transaction{meter="timer",role="tc",statistic="max",status="committed",} 164.0 1551946035372
+seata_transaction{meter="timer",role="tc",statistic="average",status="committed",} 151.66666666666666 1551946035372
+```
+
+Obtaining similar data as above proves that the metric is successfully enabled.
+
+> Note:
+> 1. If certain transaction statuses, such as rollback, do not occur, the corresponding metric indicators will not exist (output).
+
+#### Step 2: Modify the Prometheus configuration file and start Prometheus
+Open the Prometheus configuration file `prometheus.yml` and add a scrape configuration to fetch Seata TC's Metrics data:
+
+```yaml
+scrape_configs:
+  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
+  - job_name: 'prometheus'
+
+    # metrics_path defaults to '/metrics'
+    # scheme defaults to 'http'.
+```
+
+```markdown
+static_configs:
+- targets: ['localhost:9090']
+
+- job_name: 'seata'
+
+# metrics_path defaults to '/metrics'
+# scheme defaults to 'http'.
+
+static_configs:
+- targets: ['tc-server-ip:9898']
+```
+
+#### Step 3: View Seata TC Metrics in Prometheus UI or Grafana
+Open Prometheus UI `http://localhost:9090/graph` in a browser, select `seata_transaction`, and click on "Execute" to retrieve the latest data:
+
+![tc-prometheus](/img/doc/O1CN01r6916n1DiXhwH07dj_6000000000250-2-tps-1698-959.png)
+
+It is recommended to use Grafana in conjunction with Prometheus for better query results:
+
+![tc-grafana](/img/doc/O1CN01IdJk5G25B62KpD5If_6000000007487-2-tps-1694-973.png)
+
+> Note: This configuration sets Prometheus as the data source for Grafana, so the data is the same, but Grafana provides a better display effect.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/apm/skywalking.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/apm/skywalking.md
new file mode 100644
index 00000000000..8d699817c16
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/apm/skywalking.md
@@ -0,0 +1,53 @@
+---
+title: SkyWalking
+keywords: [Seata, SkyWalking]
+description: Seata SkyWalking
+---
+
+# SkyWalking
+
+SkyWalking is an important APM (Application Performance Monitoring) implementation in the Seata component.
+
+## Prerequisites
+
+Before integrating SkyWalking into your Seata project, please make sure that the SkyWalking service has been started in the background. If you are not familiar with the basic usage of SkyWalking, you can refer to the [SkyWalking Quick Start](https://github.com/apache/skywalking/tree/master/docs) first. It is recommended to use SkyWalking version `8.6.0` or above.
+
+## Quick Start
+
+The steps to integrate SkyWalking application performance monitoring into Seata are very simple. It can be roughly divided into "Compile & Configure" and "Access Monitoring" steps.
+
+### Compile & Configure
+
+First, you need to download the Seata source code and execute the following command in the root directory of the source code:
+
+`mvn clean package -Dmaven.test.skip=true`
+
+Put `seata/ext/apm-skywalking/target/seata-skywalking-{version}.jar` into the SkyWalking probe plugin folder.
+
+It is strongly recommended to use the latest version of Seata:
+
+### Access Monitoring
+
+The integration of Seata client and server with SkyWalking is no different from other application services. You can refer to the [SkyWalking Probe Configuration](https://github.com/apache/skywalking/blob/f3b567160ce61675cb692c3417101162d67093de/docs/en/setup/service-agent/java-agent/Setting-override.md).
+
+The important parameters involved in Seata are:
+
+| Parameter         | Description|
+|---------------|----|
+| skywalking.plugin.seata.server             |Boolean attribute, when set to `true`, indicates whether the application service is a Seata server|
+| skywalking.plugin.jdbc.trace_sql_parameters|Boolean attribute, when set to `true`, the application service records SQL parameters|
+| skywalking.agent.service_name              |String attribute, identifies the unique identifier of the application service in SkyWalking|
+
+Seata client probe parameters can refer to
+```
+java -javaagent:{path}/skywalking-agent.jar -Dskywalking.agent.service_name=seata_biz -Dskywalking.plugin.jdbc.trace_sql_parameters=true -jar seata_biz.jar
+```
+
+Seata server probe parameters can refer to
+```
+java -javaagent:{path}/skywalking-agent.jar -Dskywalking.agent.service_name=seata_tc -Dskywalking.plugin.jdbc.trace_sql_parameters=true -Dskywalking.plugin.seata.server=true -jar seata_tc.jar
+```
+
+## Notes
+
+1. Currently, only non-batch processing (enableClientBatchSendRequest is false) distributed transaction mode is supported.
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/appendix/global-transaction-status.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/appendix/global-transaction-status.md
new file mode 100644
index 00000000000..24c2e21fcbd
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/appendix/global-transaction-status.md
@@ -0,0 +1,60 @@
+---
+title: Global Transaction Status
+keywords: [Seata, Transaction Status]
+description: Global Transaction Status, Branch Transaction Status
+---
+
+
+# Global Transaction Status Table
+Taking the db mode as an example, global_table is the global transaction table of Seata. You can determine which state the global transaction is in by observing the status field in the global_table.
+
+
+| Status                                          | Code | Remark                                                |
+| ------------------------------------------------ | ---- | ----------------------------------------------------- |
+| Global transaction begins (Begin)                | 1    | This status can accept new branch transaction registration |
+| Global transaction committing (Committing)              | 2    | This status can change at any time                    |
+| Global transaction commit retry (CommitRetry)          | 3    | Retry commit after resolving commit exceptions        |
+| Global transaction rolling back (Rollbacking)          | 4    | Rolling back global transaction in progress           |
+| Global transaction rollback retrying (RollbackRetry)     | 5    | Retry transaction rollback after resolving global rollback exceptions |
+| Global transaction timeout rollbacking (TimoutRollbacking)  | 6    | <a href="#TimeoutRollbacking_description" target="_self">Global transaction timeout rollbacking</a> |
+| Global transaction timeout rollback retrying (TimeoutRollbackRetrying)    | 7    | Global transaction timeout rollback retrying           |
+| Asynchronous committing (AsyncCommitting)                | 8    | Asynchronous commit                                    |
+| Two-phase committed (Committed)                            | 9    | Two-phase committed, the global transaction status will not change after this state |
+| Two-phase commit failed (CommitFailed)               | 10   | Two-phase commit failed                               |
+| Two-phase global rollback (Rollbacked)                | 11   | Two-phase global rollback                              |
+| Two-phase global rollback failed (RollbackFailed)                | 12   | Two-phase global rollback failed                       |
+| Two-phase timeout rollback (TimeoutRollbacked)            | 13   | Two-phase timeout rollback                             |
+| Two-phase timeout rollback failed (TimeoutRollbackFailed)               | 14   | Two-phase timeout rollback failed                       |
+| Global transaction finished (Finished)             | 15   | Global transaction finished                            |
+| Two-phase commit retry timeout (CommitRetryTimeout)         | 16   | Two-phase commit failed due to exceeding retry time limit |
+| Two-phase rollback retry timeout (RollbackRetryTimeout)       | 17   | Two-phase rollback failed due to exceeding retry time limit |
+| Unknown status                                   | 0    | Unknown status                                         |
+
+
+# Branch Transaction Status Table
+| Status                                                                | Code | Note                         |
+| ------------------------------------------------------------------- | ---- | ---------------------------- |
+| Branch Transaction Registered                                        | 1    | Register branch transaction with TC (Registered)     |
+| Branch Transaction Phase One Done (PhaseOne_Done)              | 2    | Branch transaction phase one business logic completed   |
+| Branch Transaction Phase One Failed (PhaseOne_Failed)              | 3    | Branch transaction phase one business logic failed   |
+| Branch Transaction Phase One Timeout (PhaseOne_Timeout)         | 4    | Branch transaction phase one processing timed out       |
+| Branch Transaction Phase Two Committed (PhaseTwo_Committed)                  | 5    | Branch transaction phase two committed           |
+| Branch Transaction Phase Two Commit Failed Retryable (PhaseTwo_CommitFailed_Retryable)               | 6    | Branch transaction phase two commit failed and retriable   |
+| Branch Transaction Phase Two Commit Failed Unretryable (PhaseTwo_CommitFailed_Unretryable)      | 7    | Branch transaction phase two commit failed and not retriable |
+| Branch Transaction Phase Two Rolled Back (PhaseTwo_Rollbacked)          | 8    | Branch transaction phase two rolled back         |
+| Branch Transaction Phase Two Rollback Failed Retryable (PhaseTwo_RollbackFailed_Retryable)             | 9    | Branch transaction phase two rollback failed and retriable   |
+| Branch Transaction Phase Two Rollback Failed Unretryable (PhaseTwo_RollbackFailed_Unretryable)           | 10   | Branch transaction phase two rollback failed and not retriable |
+| Unknown Status                                                        | 0    | Unknown status                     |
+
+
+
+For better understanding, below are additional descriptions for individual states:
+
+
+<h3 id='TimeoutRollbacking_description'> Global Transaction Timeout Rollbacking (TimeoutRollbacking) </h3>
+  How does it occur?
+
+  1. When a seata global transaction is unable to complete business logic during execution.
+  2. A scheduled task in TC (specifically used to find timed out global transactions) discovers that the global transaction has not completed rollback, it will change this global transaction to **Global Transaction Timeout Rollbacking (TimeoutRollbacking)** and start rollback, until the global_table data is deleted after rollback is completed.
+
+  Recommendation: When you find a global transaction in this state, investigate why the business cannot complete within the specified time. If it is indeed unable to complete, the global transaction timeout should be extended. (If everything is normal, please check if the tc cluster's time zone is consistent with the database. If not, please make it consistent).
diff --git a/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/appendix/isolation.md b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/appendix/isolation.md
new file mode 100644
index 00000000000..72df45774dc
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/version-v2.5/user/appendix/isolation.md
@@ -0,0 +1,1280 @@
+---
+title: Transaction Isolation
+keywords: [Seata Transaction Isolation]  
+description: Seata Transaction Isolation
+---
+
+# Seata Transaction Isolation
+
+> This article aims to help users understand how to correctly implement transaction isolation when using Seata **AT mode** to prevent dirty reads and writes.
+>
+> **It is expected that readers have already read the introduction to the AT mode on the Seata official website and have an understanding of local database locks.**
+>
+> (For example, when two transactions are simultaneously updating the same record, only the transaction that holds the record lock can update successfully, while the other transaction must wait until the record lock is released, or until the transaction times out)
+
+First, take a look at this piece of code. Although it looks "basic," the main thing that the persistence layer framework actually does for us is just that.
+```java
+@Service
+public class StorageService {
+
+    @Autowired
+    private DataSource dataSource;
+
+    @GlobalTransactional
+    public void batchUpdate() throws SQLException {
+        Connection connection = null;
+        PreparedStatement preparedStatement = null;
+        try {
+            connection = dataSource.getConnection();
+            connection.setAutoCommit(false);
+            String sql = "update storage_tbl set count = ?" +
+                "    where id = ? and commodity_code = ?";
+            preparedStatement = connection.prepareStatement(sql);
+            preparedStatement.setInt(1, 100);
+            preparedStatement.setLong(2, 1);
+            preparedStatement.setString(3, "2001");
+            preparedStatement.executeUpdate();
+            connection.commit();
+        } catch (Exception e) {
+            throw e;
+        } finally {
+            IOutils.close(preparedStatement);
+            IOutils.close(connection);
+        }
+    }
+
+}
... 22200 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org