You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/10/30 10:21:41 UTC

[shardingsphere] branch master updated: Remove shardingsphere-consensus-replication module (#7984)

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

panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 0412a45  Remove shardingsphere-consensus-replication module (#7984)
0412a45 is described below

commit 0412a45c111cf04d8e08ab068dc0e115bce177ea
Author: Liang Zhang <te...@163.com>
AuthorDate: Fri Oct 30 18:21:20 2020 +0800

    Remove shardingsphere-consensus-replication module (#7984)
    
    * Remove shardingsphere-consensus-replication module
    
    * Remove doc of consensus-replication
---
 README.md                                          |   2 +-
 README_ZH.md                                       |   2 +-
 .../content/dev-manual/configuration.cn.md         |   2 -
 .../content/dev-manual/configuration.en.md         |   2 -
 docs/document/content/dev-manual/kernel.cn.md      |  11 --
 docs/document/content/dev-manual/kernel.en.md      |  11 --
 .../features/consensus-replication/_index.cn.md    |  10 --
 .../features/consensus-replication/_index.en.md    |  10 --
 .../governance/management/config-center.cn.md      |   2 +-
 .../governance/management/config-center.en.md      |   2 +-
 .../features/pluggable-architecture/_index.cn.md   |   4 +-
 .../features/pluggable-architecture/_index.en.md   |   4 +-
 .../content/features/test-engine/_index.cn.md      |   2 +-
 .../content/features/test-engine/_index.en.md      |   2 +-
 .../test-engine/integration-test-engine.cn.md      |   2 +-
 .../test-engine/integration-test-engine.en.md      |   2 +-
 .../features/test-engine/parse-test-engine.cn.md   |   2 +-
 .../features/test-engine/parse-test-engine.en.md   |   2 +-
 .../features/test-engine/performance-test.cn.md    |   2 +-
 .../features/test-engine/performance-test.en.md    |   2 +-
 .../features/test-engine/rewrite-test-engine.cn.md |   2 +-
 .../features/test-engine/rewrite-test-engine.en.md |   2 +-
 .../content/features/test-engine/sql-case.cn.md    |   2 +-
 .../content/features/test-engine/sql-case.en.md    |   2 +-
 docs/document/content/overview/_index.cn.md        |   2 +-
 docs/document/content/overview/_index.en.md        |   2 +-
 .../shardingsphere-jdbc/configuration/_index.cn.md |   2 +-
 .../shardingsphere-jdbc/configuration/_index.en.md |   2 +-
 .../java-api/consensus-replication.cn.md           |  10 --
 .../java-api/consensus-replication.en.md           |  10 --
 .../configuration/java-api/governance.cn.md        |   2 +-
 .../configuration/java-api/governance.en.md        |   2 +-
 .../consensus-replication.cn.md                    |   8 --
 .../consensus-replication.en.md                    |   8 --
 .../spring-boot-starter/governance.cn.md           |   2 +-
 .../spring-boot-starter/governance.en.md           |   2 +-
 .../spring-namespace/consensus-replication.cn.md   |   8 --
 .../spring-namespace/consensus-replication.en.md   |   8 --
 .../spring-namespace/governance.cn.md              |   2 +-
 .../spring-namespace/governance.en.md              |   2 +-
 .../configuration/yaml/consensus-replication.cn.md |   8 --
 .../configuration/yaml/consensus-replication.en.md |   8 --
 .../configuration/yaml/governance.cn.md            |   2 +-
 .../configuration/yaml/governance.en.md            |   2 +-
 .../configuration/yaml/shadow.cn.md                |   1 -
 .../configuration/yaml/shadow.en.md                |   2 +-
 .../usage/sharding/_index.cn.md                    |   2 +-
 .../usage/sharding/_index.en.md                    |   2 +-
 .../configuration/_index.cn.md                     |   2 +-
 .../configuration/_index.en.md                     |   2 +-
 shardingsphere-features/pom.xml                    |   1 -
 .../shardingsphere-consensus-replication/pom.xml   |  38 ------
 .../pom.xml                                        |  38 ------
 ...susReplicationActualTableRuleConfiguration.java |  47 -------
 ...nsusReplicationLogicTableRuleConfiguration.java |  44 -------
 .../ConsensusReplicationNodeRuleConfiguration.java |  41 -------
 .../ConsensusReplicationRuleConfiguration.java     |  37 ------
 .../pom.xml                                        |  38 ------
 .../constant/ConsensusReplicationOrder.java        |  30 -----
 .../rule/ConsensusReplicationNodeRule.java         |  38 ------
 .../consensus/rule/ConsensusReplicationRule.java   |  71 -----------
 .../rule/ConsensusReplicationTableRule.java        |  44 -------
 .../builder/ConsensusReplicationRuleBuilder.java   |  46 -------
 ...susReplicationActualTableRuleConfiguration.java |  38 ------
 ...nsusReplicationLogicTableRuleConfiguration.java |  37 ------
 ...lConsensusReplicationNodeRuleConfiguration.java |  34 ------
 .../YamlConsensusReplicationRuleConfiguration.java |  42 -------
 ...ionActualTableRuleConfigurationYamlSwapper.java |  54 ---------
 ...tionLogicTableRuleConfigurationYamlSwapper.java |  53 --------
 ...eplicationNodeRuleConfigurationYamlSwapper.java |  42 -------
 ...susReplicationRuleConfigurationYamlSwapper.java |  69 -----------
 ...dingsphere.infra.rule.ShardingSphereRuleBuilder |  18 ---
 ...infra.yaml.swapper.YamlRuleConfigurationSwapper |  18 ---
 .../rule/ConsensusReplicationRuleTest.java         |  83 -------------
 .../ConsensusReplicationRuleBuilderTest.java       |  45 -------
 ...ctualTableRuleConfigurationYamlSwapperTest.java |  86 -------------
 ...cationNodeRuleConfigurationYamlSwapperTest.java |  65 ----------
 ...eplicationRuleConfigurationYamlSwapperTest.java | 135 ---------------------
 .../pom.xml                                        |  48 --------
 .../ConsensusReplicationExecutorCallback.java      |  42 -------
 ...efaultConsensusReplicationExecutorCallback.java |  54 ---------
 .../ConsensusReplicationExecuteGroupDecorator.java | 110 -----------------
 ....infra.executor.sql.group.ExecuteGroupDecorator |  18 ---
 ...or.sql.raw.execute.callback.RawExecutorCallback |  18 ---
 .../pom.xml                                        |  43 -------
 .../route/engine/ConsensusReplicationGroup.java    |  40 ------
 .../engine/ConsensusReplicationGroupNode.java      |  37 ------
 .../ConsensusReplicationRouteStageContext.java     |  38 ------
 .../engine/ConsensusReplicationSQLRouter.java      | 107 ----------------
 ...org.apache.shardingsphere.infra.route.SQLRouter |  18 ---
 .../shardingsphere-jdbc-core/pom.xml               |  10 --
 .../shardingsphere-proxy-backend/pom.xml           |  10 --
 92 files changed, 37 insertions(+), 2077 deletions(-)

diff --git a/README.md b/README.md
index b105473..fbd7512 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ Aiming at reasonably making full use of the computation and storage capacity of
 As the cornerstone of many enterprises, relational database still takes a huge market share. Therefore, at current stage, we prefer to focus on its increment instead of a total overturn.
 
 Apache ShardingSphere begins to focus on pluggable architecture from version 5.x, features can be embedded into project flexibility.
-Currently, the features such as data sharding, replica query, consensus replication, data encrypt, shadow test, and SQL dialects / database protocols such as MySQL, PostgreSQL, SQLServer, Oracle supported are all weaved by plugins.
+Currently, the features such as data sharding, replica query, data encrypt, shadow test, and SQL dialects / database protocols such as MySQL, PostgreSQL, SQLServer, Oracle supported are all weaved by plugins.
 Developers can customize their own ShardingSphere systems just like building lego blocks. There are lots of SPI extensions for Apache ShardingSphere now and increasing continuously.
 
 ShardingSphere became an [Apache](https://apache.org/index.html#projects-list) Top Level Project on April 16, 2020.
diff --git a/README_ZH.md b/README_ZH.md
index 3f3de19..88a5fca 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -27,7 +27,7 @@ Apache ShardingSphere 定位为关系型数据库中间件,旨在充分合理
 它通过关注不变,进而抓住事物本质。关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。
 
 Apache ShardingSphere 5.x 版本开始致力于可插拔架构,项目的功能组件能够灵活的以可插拔的方式进行扩展。
-目前,数据分片、读写分离、强一致多副本、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。
+目前,数据分片、读写分离、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。
 开发者能够像使用积木一样定制属于自己的独特系统。Apache ShardingSphere 目前已提供数十个 SPI 作为系统的扩展点,而且仍在不断增加中。
 
 ShardingSphere 已于2020年4月16日成为 [Apache 软件基金会](https://apache.org/index.html#projects-list)的顶级项目。
diff --git a/docs/document/content/dev-manual/configuration.cn.md b/docs/document/content/dev-manual/configuration.cn.md
index 1a9a791..9587d67 100644
--- a/docs/document/content/dev-manual/configuration.cn.md
+++ b/docs/document/content/dev-manual/configuration.cn.md
@@ -15,7 +15,6 @@ chapter = true
 | ------------------------------- | ---------------------------------------------- |
 | ShardingRuleBuilder             | 用于将分片用户配置转化为分片规则对象               |
 | ReplicaQueryRuleBuilder         | 用于将读写分离用户配置转化为读写分离规则对象        |
-| ConsensusReplicationRuleBuilder | 用于将强一致多副本用户配置转化为强一致多副本规则对象 |
 | EncryptRuleBuilder              | 用于将加密用户配置转化为加密规则对象               |
 | ShadowRuleBuilder               | 用于将影子库用户配置转化为影子库规则对象           |
 
@@ -29,7 +28,6 @@ chapter = true
 | ------------------------------------------------ | ----------------------------------------------------- |
 | ShardingRuleConfigurationYamlSwapper             | 用于将分片的 YAML 配置转化为分片标准配置                  |
 | ReplicaQueryRuleConfigurationYamlSwapper         | 用于将读写分离的 YAML 配置转化为读写分离标准配置           |
-| ConsensusReplicationRuleConfigurationYamlSwapper | 用于将强一致多副本的 YAML 分片配置转化为强一致多副本标准配置 |
 | EncryptRuleConfigurationYamlSwapper              | 用于将加密的 YAML 分片配置转化为加密标准配置               |
 | ShadowRuleConfigurationYamlSwapper               | 用于将影子库的 YAML 分片配置转化为影子库标准配置           |
 
diff --git a/docs/document/content/dev-manual/configuration.en.md b/docs/document/content/dev-manual/configuration.en.md
index b864267..1a3df8a 100644
--- a/docs/document/content/dev-manual/configuration.en.md
+++ b/docs/document/content/dev-manual/configuration.en.md
@@ -15,7 +15,6 @@ chapter = true
 | ------------------------------- | ----------------------------------------------------------------------------------------------------------- |
 | ShardingRuleBuilder             | Used to convert user sharding configurations to sharding rule objects                                       |
 | ReplicaQueryRuleBuilder         | Used to convert user replica query configurations to replica query rule objects |
-| ConsensusReplicationRuleBuilder | Used to convert user consensus replication configurations to consensus replication rule objects             |
 | EncryptRuleBuilder              | Used to convert user encryption configurations to encryption rule objects                                   |
 | ShadowRuleBuilder               | Used to convert user shadow database configurations to shadow database rule objects                         |
 
@@ -29,7 +28,6 @@ chapter = true
 | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------- |
 | ShardingRuleConfigurationYamlSwapper             | Used to convert YAML sharding configuration to standard sharding configuration                           |
 | ReplicaQueryRuleConfigurationYamlSwapper         | Used to convert YAML replica query configuration to standard replica query configuration                 |
-| ConsensusReplicationRuleConfigurationYamlSwapper | Used to convert YAML consensus replication configuration to standard consensus replication configuration |
 | EncryptRuleConfigurationYamlSwapper              | Used to convert YAML encryption configuration to standard encryption configuration                       |
 | ShadowRuleConfigurationYamlSwapper               | Used to convert YAML shadow database configuration to standard shadow database configuration             |
 
diff --git a/docs/document/content/dev-manual/kernel.cn.md b/docs/document/content/dev-manual/kernel.cn.md
index e3563c2..98b7b9a 100644
--- a/docs/document/content/dev-manual/kernel.cn.md
+++ b/docs/document/content/dev-manual/kernel.cn.md
@@ -53,7 +53,6 @@ chapter = true
 | ----------------------------- | ------------------------ |
 | ShardingSQLRouter             | 用于处理分片路由结果       |
 | ReplicaQuerySQLRouter         | 用于处理读写分离路由结果    |
-| ConsensusReplicationSQLRouter | 用于处理强一致多副本路由结果 |
 | ShadowSQLRouter               | 用于处理影子库路由结果      |
 
 ## SQLRewriteContextDecorator
@@ -68,16 +67,6 @@ chapter = true
 | EncryptSQLRewriteContextDecorator  | 用于处理加密 SQL 改写结果   |
 | ShadowSQLRewriteContextDecorator   | 用于处理影子库 SQL 改写结果 |
 
-## ExecuteGroupDecorator
-
-| *SPI 名称*                   | *详细说明*             |
-| ---------------------------- | --------------------- |
-| ExecuteGroupDecorator        | 用于修改数据节点分组结果 |
-
-| *已知实现类*                               | *详细说明*                |
-| ----------------------------------------- | ------------------------ |
-| ConsensusReplicationExecuteGroupDecorator | 用于强一致多副本数据节点分组 |
-
 ## SQLExecutionHook
 
 | *SPI 名称*                     | *详细说明*                        |
diff --git a/docs/document/content/dev-manual/kernel.en.md b/docs/document/content/dev-manual/kernel.en.md
index 0acd352..98c4285 100644
--- a/docs/document/content/dev-manual/kernel.en.md
+++ b/docs/document/content/dev-manual/kernel.en.md
@@ -53,7 +53,6 @@ chapter = true
 | ----------------------------- | ----------------------------------------------------- |
 | ShardingSQLRouter             | Used to process sharding routing results              |
 | ReplicaQuerySQLRouter         | Used to process replica query routing results         |
-| ConsensusReplicationSQLRouter | Used to process consensus replication routing results |
 | ShadowRouteSQLRouter          | Used to process shadow database routing results       |
 
 ## SQLRewriteContextDecorator
@@ -68,16 +67,6 @@ chapter = true
 | EncryptSQLRewriteContextDecorator  | Used to process encryption SQL rewrite results |
 | ShadowSQLRewriteContextDecorator   | Used to process shadow SQL rewrite results     |
 
-## ExecuteGroupDecorator
-
-| *SPI Name*                   | *Description*                          |
-| ---------------------------- | -------------------------------------- |
-| ExecuteGroupDecorator        | Used by update data nodes group result |
-
-| *Implementation Class*                    | *Description*                                  |
-| ----------------------------------------- | ---------------------------------------------- |
-| ConsensusReplicationExecuteGroupDecorator | Used by consensus replication data nodes group |
-
 ## SQLExecutionHook
 
 | *SPI Name*                    | *Description*                      |
diff --git a/docs/document/content/features/consensus-replication/_index.cn.md b/docs/document/content/features/consensus-replication/_index.cn.md
deleted file mode 100644
index c635897..0000000
--- a/docs/document/content/features/consensus-replication/_index.cn.md
+++ /dev/null
@@ -1,10 +0,0 @@
-+++
-pre = "<b>3.8. </b>"
-title = "强一致多副本"
-weight = 8
-chapter = true
-+++
-
-## 导览
-
-TODO
\ No newline at end of file
diff --git a/docs/document/content/features/consensus-replication/_index.en.md b/docs/document/content/features/consensus-replication/_index.en.md
deleted file mode 100644
index dfc0435..0000000
--- a/docs/document/content/features/consensus-replication/_index.en.md
+++ /dev/null
@@ -1,10 +0,0 @@
-+++
-pre = "<b>3.8. </b>"
-title = "Consensus Replication"
-weight = 8
-chapter = true
-+++
-
-## Navigation
-
-TODO
diff --git a/docs/document/content/features/governance/management/config-center.cn.md b/docs/document/content/features/governance/management/config-center.cn.md
index ec4dba9..0a14a9e 100644
--- a/docs/document/content/features/governance/management/config-center.cn.md
+++ b/docs/document/content/features/governance/management/config-center.cn.md
@@ -80,7 +80,7 @@ dataSources:
 
 ### /schemas/${schemeName}/rule
 
-规则配置,可包括数据分片、读写分离、数据加密、影子库压测、强一致多副本等配置。
+规则配置,可包括数据分片、读写分离、数据加密、影子库压测等配置。
 
 ```yaml
 rules:
diff --git a/docs/document/content/features/governance/management/config-center.en.md b/docs/document/content/features/governance/management/config-center.en.md
index 0bac859..44c2428 100644
--- a/docs/document/content/features/governance/management/config-center.en.md
+++ b/docs/document/content/features/governance/management/config-center.en.md
@@ -80,7 +80,7 @@ dataSources:
 
 ### /schemas/${schemeName}/rule
 
-Rule configurations, including sharding, replica query, data encryption, shadow DB, consensus replication configurations.
+Rule configurations, including sharding, replica query, data encryption, shadow DB configurations.
 
 ```yaml
 rules:
diff --git a/docs/document/content/features/pluggable-architecture/_index.cn.md b/docs/document/content/features/pluggable-architecture/_index.cn.md
index e3d151b..b2eabea 100644
--- a/docs/document/content/features/pluggable-architecture/_index.cn.md
+++ b/docs/document/content/features/pluggable-architecture/_index.cn.md
@@ -1,7 +1,7 @@
 +++
 pre = "<b>3.9. </b>"
 title = "可插拔架构"
-weight = 9
+weight = 8
 chapter = true
 +++
 
@@ -16,7 +16,7 @@ SPI 是一种为了被第三方实现或扩展的 API,它可以用于实现框
 设计一套将功能开发完全隔离的架构体系,既可以最大限度的将开源社区的活力激发出来,也能够保障项目的质量。
 
 Apache ShardingSphere 5.x 版本开始致力于可插拔架构,项目的功能组件能够灵活的以可插拔的方式进行扩展。
-目前,数据分片、读写分离、强一致多副本、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。
+目前,数据分片、读写分离、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。
 Apache ShardingSphere 目前已提供数十个 SPI 作为系统的扩展点,而且仍在不断增加中。
 
 ## 目标
diff --git a/docs/document/content/features/pluggable-architecture/_index.en.md b/docs/document/content/features/pluggable-architecture/_index.en.md
index 75b4f2b..0597256 100644
--- a/docs/document/content/features/pluggable-architecture/_index.en.md
+++ b/docs/document/content/features/pluggable-architecture/_index.en.md
@@ -1,7 +1,7 @@
 +++
 pre = "<b>3.9. </b>"
 title = "Pluggable Architecture"
-weight = 9
+weight = 8
 chapter = true
 +++
 
@@ -17,7 +17,7 @@ It needs to make each module decouple to independent and imperceptible to each o
 Design an architecture to completely isolate each function, not only can stimulate the enthusiasm of the open source community, but also can guarantee the quality of the project.
 
 Apache ShardingSphere begin to focus on pluggable architecture from version 5.x, features can be embedded into project flexibility.
-Currently, the features such as data sharding, replica query, consensus replication, data encrypt, shadow test, and SQL dialects / database protocols such as MySQL, PostgreSQL, SQLServer, Oracle supported are all weaved by plugins.
+Currently, the features such as data sharding, replica query, data encrypt, shadow test, and SQL dialects / database protocols such as MySQL, PostgreSQL, SQLServer, Oracle supported are all weaved by plugins.
 There are lots of SPI extensions for Apache ShardingSphere now and increase continuously.
 
 ## Goal
diff --git a/docs/document/content/features/test-engine/_index.cn.md b/docs/document/content/features/test-engine/_index.cn.md
index 32fec84..40574de 100644
--- a/docs/document/content/features/test-engine/_index.cn.md
+++ b/docs/document/content/features/test-engine/_index.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10. </b>"
+pre = "<b>3.9. </b>"
 title = "测试引擎"
 weight = 10
 chapter = true
diff --git a/docs/document/content/features/test-engine/_index.en.md b/docs/document/content/features/test-engine/_index.en.md
index 45b3d02..2f9dc90 100644
--- a/docs/document/content/features/test-engine/_index.en.md
+++ b/docs/document/content/features/test-engine/_index.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10. </b>"
+pre = "<b>3.9. </b>"
 title = "Test Engine"
 weight = 10
 chapter = true
diff --git a/docs/document/content/features/test-engine/integration-test-engine.cn.md b/docs/document/content/features/test-engine/integration-test-engine.cn.md
index 801de5a..fc2afe1 100644
--- a/docs/document/content/features/test-engine/integration-test-engine.cn.md
+++ b/docs/document/content/features/test-engine/integration-test-engine.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.2. </b>"
+pre = "<b>3.9.2. </b>"
 title = "整合测试引擎"
 weight = 2
 +++
diff --git a/docs/document/content/features/test-engine/integration-test-engine.en.md b/docs/document/content/features/test-engine/integration-test-engine.en.md
index d134cc7..c5624be 100644
--- a/docs/document/content/features/test-engine/integration-test-engine.en.md
+++ b/docs/document/content/features/test-engine/integration-test-engine.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.2. </b>"
+pre = "<b>3.9.2. </b>"
 title = "Integration Test Engine"
 weight = 2
 +++
diff --git a/docs/document/content/features/test-engine/parse-test-engine.cn.md b/docs/document/content/features/test-engine/parse-test-engine.cn.md
index 1d47135..a975fc3 100644
--- a/docs/document/content/features/test-engine/parse-test-engine.cn.md
+++ b/docs/document/content/features/test-engine/parse-test-engine.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.3. </b>"
+pre = "<b>3.9.3. </b>"
 title = "SQL解析测试引擎"
 weight = 3
 +++
diff --git a/docs/document/content/features/test-engine/parse-test-engine.en.md b/docs/document/content/features/test-engine/parse-test-engine.en.md
index 808d7fb..90aacd5 100644
--- a/docs/document/content/features/test-engine/parse-test-engine.en.md
+++ b/docs/document/content/features/test-engine/parse-test-engine.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.3. </b>"
+pre = "<b>3.9.3. </b>"
 title = "SQL Parse Test Engine"
 weight = 3
 +++
diff --git a/docs/document/content/features/test-engine/performance-test.cn.md b/docs/document/content/features/test-engine/performance-test.cn.md
index ae01e24..b565596 100644
--- a/docs/document/content/features/test-engine/performance-test.cn.md
+++ b/docs/document/content/features/test-engine/performance-test.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.5. </b>"
+pre = "<b>3.9.5. </b>"
 title = "性能测试"
 weight = 5
 +++
diff --git a/docs/document/content/features/test-engine/performance-test.en.md b/docs/document/content/features/test-engine/performance-test.en.md
index 59ae085..34f1d27 100644
--- a/docs/document/content/features/test-engine/performance-test.en.md
+++ b/docs/document/content/features/test-engine/performance-test.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.5. </b>"
+pre = "<b>3.9.5. </b>"
 title = "Performance Test"
 weight = 5
 +++
diff --git a/docs/document/content/features/test-engine/rewrite-test-engine.cn.md b/docs/document/content/features/test-engine/rewrite-test-engine.cn.md
index 2f4b3dc..473395d 100644
--- a/docs/document/content/features/test-engine/rewrite-test-engine.cn.md
+++ b/docs/document/content/features/test-engine/rewrite-test-engine.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.4. </b>"
+pre = "<b>3.9.4. </b>"
 title = "SQL改写测试引擎"
 weight = 4
 +++
diff --git a/docs/document/content/features/test-engine/rewrite-test-engine.en.md b/docs/document/content/features/test-engine/rewrite-test-engine.en.md
index 9d1253c..723729d 100644
--- a/docs/document/content/features/test-engine/rewrite-test-engine.en.md
+++ b/docs/document/content/features/test-engine/rewrite-test-engine.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.4. </b>"
+pre = "<b>3.9.4. </b>"
 title = "SQL Rewrite Test Engine"
 weight = 4
 +++
diff --git a/docs/document/content/features/test-engine/sql-case.cn.md b/docs/document/content/features/test-engine/sql-case.cn.md
index 10a8559..da24315 100644
--- a/docs/document/content/features/test-engine/sql-case.cn.md
+++ b/docs/document/content/features/test-engine/sql-case.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.1. </b>"
+pre = "<b>3.9.1. </b>"
 title = "SQL测试用例"
 weight = 1
 +++
diff --git a/docs/document/content/features/test-engine/sql-case.en.md b/docs/document/content/features/test-engine/sql-case.en.md
index c392c62..008716c 100644
--- a/docs/document/content/features/test-engine/sql-case.en.md
+++ b/docs/document/content/features/test-engine/sql-case.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>3.10.1. </b>"
+pre = "<b>3.9.1. </b>"
 title = "SQL Case"
 weight = 1
 +++
diff --git a/docs/document/content/overview/_index.cn.md b/docs/document/content/overview/_index.cn.md
index b56c76e..956dc28 100644
--- a/docs/document/content/overview/_index.cn.md
+++ b/docs/document/content/overview/_index.cn.md
@@ -18,7 +18,7 @@ Apache ShardingSphere 定位为关系型数据库中间件,旨在充分合理
 它通过关注不变,进而抓住事物本质。关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。
 
 Apache ShardingSphere 5.x 版本开始致力于可插拔架构,项目的功能组件能够灵活的以可插拔的方式进行扩展。
-目前,数据分片、读写分离、强一致多副本、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。
+目前,数据分片、读写分离、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。
 开发者能够像使用积木一样定制属于自己的独特系统。Apache ShardingSphere 目前已提供数十个 SPI 作为系统的扩展点,而且仍在不断增加中。
 
 ShardingSphere 已于2020年4月16日成为 [Apache 软件基金会](https://apache.org/index.html#projects-list)的顶级项目。
diff --git a/docs/document/content/overview/_index.en.md b/docs/document/content/overview/_index.en.md
index 27f4636..5d21fad 100644
--- a/docs/document/content/overview/_index.en.md
+++ b/docs/document/content/overview/_index.en.md
@@ -18,7 +18,7 @@ Aiming at reasonably making full use of the computation and storage capacity of
 As the cornerstone of many enterprises, relational database still takes a huge market share. Therefore, at current stage, we prefer to focus on its increment instead of a total overturn.
 
 Apache ShardingSphere begin to focus on pluggable architecture from version 5.x, features can be embedded into project flexibility.
-Currently, the features such as data sharding, replica query, consensus replication, data encrypt, shadow test, and SQL dialects / database protocols such as MySQL, PostgreSQL, SQLServer, Oracle supported are all weaved by plugins.
+Currently, the features such as data sharding, replica query, data encrypt, shadow test, and SQL dialects / database protocols such as MySQL, PostgreSQL, SQLServer, Oracle supported are all weaved by plugins.
 Developers can customize their own ShardingSphere just like building lego blocks. There are lots of SPI extensions for Apache ShardingSphere now and increase continuously.
 
 ShardingSphere became an [Apache](https://apache.org/index.html#projects-list) Top Level Project on April 16 2020.
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/_index.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/_index.cn.md
index 5e452ac..cfd4171 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/_index.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/_index.cn.md
@@ -10,4 +10,4 @@ chapter = true
 本章节是 ShardingSphere-JDBC 的配置参考手册,需要时可当做字典查阅。
 
 ShardingSphere-JDBC 提供了 4 种配置方式,用于不同的使用场景。
-通过配置,应用开发者可以灵活的使用数据分片、读写分离、强一致多副本、数据加密、影子库等功能,并且能够叠加使用。
+通过配置,应用开发者可以灵活的使用数据分片、读写分离、数据加密、影子库等功能,并且能够叠加使用。
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/_index.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/_index.en.md
index 344e007..880d2fb 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/_index.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/_index.en.md
@@ -11,4 +11,4 @@ through which developers can quickly and clearly understand the functions provid
 This chapter is a configuration manual for ShardingSphere-JDBC, which can also be referred to as a dictionary if necessary.
 
 ShardingSphere-JDBC has provided 4 kinds of configuration methods for different situations. 
-By configuration, application developers can flexibly use data sharding, replica query, consensus replication, data encryption, shadow database or the combination of them.
+By configuration, application developers can flexibly use data sharding, replica query, data encryption, shadow database or the combination of them.
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/consensus-replication.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/consensus-replication.cn.md
deleted file mode 100644
index f5e911d..0000000
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/consensus-replication.cn.md
+++ /dev/null
@@ -1,10 +0,0 @@
-+++
-title = "强一致多副本"
-weight = 5
-+++
-
-## 配置入口
-
-类名称:org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration
-
-TODO
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/consensus-replication.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/consensus-replication.en.md
deleted file mode 100644
index 539e50f..0000000
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/consensus-replication.en.md
+++ /dev/null
@@ -1,10 +0,0 @@
-+++
-title = "Consensus Replication"
-weight = 5
-+++
-
-## Root Configuration
-
-Class name: org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration
-
-TODO
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/governance.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/governance.cn.md
index 133d144..e00eaed 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/governance.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/governance.cn.md
@@ -1,6 +1,6 @@
 +++
 title = "分布式治理"
-weight = 6
+weight = 5
 +++
 
 ## 配置项说明
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/governance.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/governance.en.md
index 0769551..f41f8b4 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/governance.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/governance.en.md
@@ -1,6 +1,6 @@
 +++
 title = "Governance"
-weight = 6
+weight = 5
 +++
 
 ## Configuration Item Explanation
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/consensus-replication.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/consensus-replication.cn.md
deleted file mode 100644
index debbb4b..0000000
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/consensus-replication.cn.md
+++ /dev/null
@@ -1,8 +0,0 @@
-+++
-title = "强一致多副本"
-weight = 5
-+++
-
-## 配置项说明
-
-TODO
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/consensus-replication.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/consensus-replication.en.md
deleted file mode 100644
index f5dc0b6..0000000
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/consensus-replication.en.md
+++ /dev/null
@@ -1,8 +0,0 @@
-+++
-title = "Consensus Replication"
-weight = 5
-+++
-
-## Configuration Item Explanation
-
-TODO
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/governance.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/governance.cn.md
index 297aefe..21b96e6 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/governance.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/governance.cn.md
@@ -1,6 +1,6 @@
 +++
 title = "分布式治理"
-weight = 6
+weight = 5
 +++
 
 ## 配置项说明
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/governance.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/governance.en.md
index c98e9db..f310872 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/governance.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-boot-starter/governance.en.md
@@ -1,6 +1,6 @@
 +++
 title = "Governance"
-weight = 6
+weight = 5
 +++
 
 ## Configuration Item Explanation
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/consensus-replication.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/consensus-replication.cn.md
deleted file mode 100644
index debbb4b..0000000
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/consensus-replication.cn.md
+++ /dev/null
@@ -1,8 +0,0 @@
-+++
-title = "强一致多副本"
-weight = 5
-+++
-
-## 配置项说明
-
-TODO
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/consensus-replication.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/consensus-replication.en.md
deleted file mode 100644
index f5dc0b6..0000000
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/consensus-replication.en.md
+++ /dev/null
@@ -1,8 +0,0 @@
-+++
-title = "Consensus Replication"
-weight = 5
-+++
-
-## Configuration Item Explanation
-
-TODO
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/governance.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/governance.cn.md
index 61fd286..6ba4aea 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/governance.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/governance.cn.md
@@ -1,6 +1,6 @@
 +++
 title = "分布式治理"
-weight = 6
+weight = 5
 +++
 
 ## 配置项说明
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/governance.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/governance.en.md
index e1b106b..a4bf0fb 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/governance.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/spring-namespace/governance.en.md
@@ -1,6 +1,6 @@
 +++
 title = "Governance"
-weight = 6
+weight = 5
 +++
 
 ## Configuration Item Explanation
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/consensus-replication.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/consensus-replication.cn.md
deleted file mode 100644
index debbb4b..0000000
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/consensus-replication.cn.md
+++ /dev/null
@@ -1,8 +0,0 @@
-+++
-title = "强一致多副本"
-weight = 5
-+++
-
-## 配置项说明
-
-TODO
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/consensus-replication.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/consensus-replication.en.md
deleted file mode 100644
index f5dc0b6..0000000
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/consensus-replication.en.md
+++ /dev/null
@@ -1,8 +0,0 @@
-+++
-title = "Consensus Replication"
-weight = 5
-+++
-
-## Configuration Item Explanation
-
-TODO
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/governance.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/governance.cn.md
index aa9a19b..9ea9ac6 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/governance.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/governance.cn.md
@@ -1,6 +1,6 @@
 +++
 title = "分布式治理"
-weight = 6
+weight = 5
 +++
 
 ## 配置项说明
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/governance.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/governance.en.md
index 121462a..90886c9 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/governance.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/governance.en.md
@@ -1,6 +1,6 @@
 +++
 title = "Governance"
-weight = 6
+weight = 5
 +++
 
 ## Configuration Item Explanation
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/shadow.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/shadow.cn.md
index 09db5ae..109ae92 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/shadow.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/shadow.cn.md
@@ -15,7 +15,6 @@ rules:
      # ...
   shadowDataSourceNames: # 对应的影子库名
      # ... 
-    
 
 props:
   # ...
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/shadow.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/shadow.en.md
index 52f6b73..c291e30 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/shadow.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/yaml/shadow.en.md
@@ -15,7 +15,7 @@ rules:
      # ...
   shadowDataSourceNames: # Shadow Data Source names
      # ... 
-    
+
 props:
   # ...
 ```
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/usage/sharding/_index.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/usage/sharding/_index.cn.md
index 3b16328..4272ee6 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/usage/sharding/_index.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/usage/sharding/_index.cn.md
@@ -5,6 +5,6 @@ chapter = true
 +++
 
 数据分片是 Apache ShardingSphere 的基础能力,本节以数据分片的使用举例。
-除数据分片之外,读写分离、强一致多副本、数据加密、影子库压测等功能的使用方法完全一致,只要配置相应的规则即可。多规则可以叠加配置。
+除数据分片之外,读写分离、数据加密、影子库压测等功能的使用方法完全一致,只要配置相应的规则即可。多规则可以叠加配置。
 
 详情请参见[配置手册](/cn/user-manual/shardingsphere-jdbc/configuration/)。
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/usage/sharding/_index.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/usage/sharding/_index.en.md
index e1bab02..759483f 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/usage/sharding/_index.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/usage/sharding/_index.en.md
@@ -6,7 +6,7 @@ chapter = true
 
 Data sharding is the basic capability of Apache ShardingSphere. 
 This section uses data sharding as an example.
-The usage of functions such as replica query, consensus replication, data encryption, shadow database is completely consistent with data sharding, as long as the corresponding rules are configured. 
+The usage of functions such as replica query, data encryption, shadow database is completely consistent with data sharding, as long as the corresponding rules are configured. 
 Multiple rules can be appended.
 
 Please refer to [Configuration Manual](/en/user-manual/shardingsphere-jdbc/configuration/) for more details.
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/configuration/_index.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/configuration/_index.cn.md
index b1b4cfd..ef6ab6f 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/configuration/_index.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/configuration/_index.cn.md
@@ -9,6 +9,6 @@ weight = 2
 本章节是 ShardingSphere-Proxy 的配置参考手册,需要时可当做字典查阅。
 
 ShardingSphere-Proxy 只提供基于 YAML 的配置方式。
-通过配置,应用开发者可以灵活的使用数据分片、读写分离、强一致多副本、数据加密、影子库等功能,并且能够叠加使用。
+通过配置,应用开发者可以灵活的使用数据分片、读写分离、数据加密、影子库等功能,并且能够叠加使用。
 
 规则配置部分与 ShardingSphere-JDBC 的 YAML 配置完全一致。
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/configuration/_index.en.md b/docs/document/content/user-manual/shardingsphere-proxy/configuration/_index.en.md
index 3038b9a..1bc00d0 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/configuration/_index.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/configuration/_index.en.md
@@ -10,6 +10,6 @@ through which developer can quickly and clearly understand the functions provide
 This chapter is a configuration manual for ShardingSphere-Proxy, which can also be referred to as a dictionary if necessary.
 
 ShardingSphere-Proxy only provided YAML configuration. 
-By configuration, application developers can flexibly use data sharding, replica query, consensus replication, data encryption, shadow database or the combination of them.
+By configuration, application developers can flexibly use data sharding, replica query, data encryption, shadow database or the combination of them.
 
 Rule configuration keeps consist with YAML configuration of ShardingSphere-JDBC.
diff --git a/shardingsphere-features/pom.xml b/shardingsphere-features/pom.xml
index ed6d760..101ab6d 100644
--- a/shardingsphere-features/pom.xml
+++ b/shardingsphere-features/pom.xml
@@ -34,6 +34,5 @@
         <module>shardingsphere-replica-query</module>
         <module>shardingsphere-encrypt</module>
         <module>shardingsphere-shadow</module>
-        <module>shardingsphere-consensus-replication</module>
     </modules>
 </project>
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/pom.xml b/shardingsphere-features/shardingsphere-consensus-replication/pom.xml
deleted file mode 100644
index 05f55ef..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-features</artifactId>
-        <version>5.0.0-RC1-SNAPSHOT</version>
-    </parent>
-    <artifactId>shardingsphere-consensus-replication</artifactId>
-    <packaging>pom</packaging>
-    <name>${project.artifactId}</name>
-    
-    <modules>
-        <module>shardingsphere-consensus-replication-api</module>
-        <module>shardingsphere-consensus-replication-common</module>
-        <module>shardingsphere-consensus-replication-route</module>
-        <module>shardingsphere-consensus-replication-executor</module>
-    </modules>
-</project>
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/pom.xml b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/pom.xml
deleted file mode 100644
index 060493c..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-consensus-replication</artifactId>
-        <version>5.0.0-RC1-SNAPSHOT</version>
-    </parent>
-    <artifactId>shardingsphere-consensus-replication-api</artifactId>
-    <name>${project.artifactId}</name>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-common</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationActualTableRuleConfiguration.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationActualTableRuleConfiguration.java
deleted file mode 100644
index 0db0452..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationActualTableRuleConfiguration.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.api.config;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-import lombok.Getter;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
-
-import java.util.Collection;
-
-/**
- * Consensus replication actual table rule configuration.
- */
-@Getter
-public final class ConsensusReplicationActualTableRuleConfiguration implements RuleConfiguration {
-    
-    private final String physicsTable;
-    
-    private final String replicaGroupId;
-    
-    private final Collection<ConsensusReplicationNodeRuleConfiguration> replicaNodes;
-    
-    public ConsensusReplicationActualTableRuleConfiguration(final String physicsTable, final String replicaGroupId, final Collection<ConsensusReplicationNodeRuleConfiguration> replicaNodes) {
-        Preconditions.checkArgument(!Strings.isNullOrEmpty(physicsTable), "physicsTable is required.");
-        Preconditions.checkArgument(!Strings.isNullOrEmpty(replicaGroupId), "replicaGroupId is required.");
-        Preconditions.checkArgument(null != replicaNodes, "replicaNodes is required.");
-        this.physicsTable = physicsTable;
-        this.replicaGroupId = replicaGroupId;
-        this.replicaNodes = replicaNodes;
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationLogicTableRuleConfiguration.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationLogicTableRuleConfiguration.java
deleted file mode 100644
index 1524d8a..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationLogicTableRuleConfiguration.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.api.config;
-
-import lombok.Getter;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
-
-import java.util.Collection;
-import java.util.Collections;
-
-/**
- * Consensus replication logic table rule configuration.
- */
-@Getter
-public final class ConsensusReplicationLogicTableRuleConfiguration implements RuleConfiguration {
-    
-    private final String logicTable;
-    
-    private final Collection<ConsensusReplicationActualTableRuleConfiguration> replicaGroups;
-    
-    public ConsensusReplicationLogicTableRuleConfiguration(final String logicTable, final Collection<ConsensusReplicationActualTableRuleConfiguration> replicaGroups) {
-        this.logicTable = logicTable;
-        if (null != replicaGroups) {
-            this.replicaGroups = replicaGroups;
-        } else {
-            this.replicaGroups = Collections.emptyList();
-        }
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationNodeRuleConfiguration.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationNodeRuleConfiguration.java
deleted file mode 100644
index 363dd70..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationNodeRuleConfiguration.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.api.config;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-import lombok.Getter;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
-
-/**
- * Consensus replication node rule configuration.
- */
-@Getter
-public final class ConsensusReplicationNodeRuleConfiguration implements RuleConfiguration {
-    
-    private final String replicaPeer;
-    
-    private final String dataSourceName;
-    
-    public ConsensusReplicationNodeRuleConfiguration(final String replicaPeer, final String dataSourceName) {
-        Preconditions.checkArgument(!Strings.isNullOrEmpty(replicaPeer), "replicaPeer is required.");
-        Preconditions.checkArgument(!Strings.isNullOrEmpty(dataSourceName), "dataSourceName is required.");
-        this.replicaPeer = replicaPeer;
-        this.dataSourceName = dataSourceName;
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationRuleConfiguration.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationRuleConfiguration.java
deleted file mode 100644
index 4f75945..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-api/src/main/java/org/apache/shardingsphere/replication/consensus/api/config/ConsensusReplicationRuleConfiguration.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.api.config;
-
-import lombok.Getter;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
-
-import java.util.Collection;
-import java.util.Collections;
-
-/**
- * Consensus replication rule configuration.
- */
-@Getter
-public final class ConsensusReplicationRuleConfiguration implements RuleConfiguration {
-    
-    private final Collection<ConsensusReplicationLogicTableRuleConfiguration> tables;
-    
-    public ConsensusReplicationRuleConfiguration(final Collection<ConsensusReplicationLogicTableRuleConfiguration> tables) {
-        this.tables = null == tables ? Collections.emptyList() : tables;
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/pom.xml b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/pom.xml
deleted file mode 100644
index 1950582..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-consensus-replication</artifactId>
-        <version>5.0.0-RC1-SNAPSHOT</version>
-    </parent>
-    <artifactId>shardingsphere-consensus-replication-common</artifactId>
-    <name>${project.artifactId}</name>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-consensus-replication-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/constant/ConsensusReplicationOrder.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/constant/ConsensusReplicationOrder.java
deleted file mode 100644
index fb77940..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/constant/ConsensusReplicationOrder.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.constant;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-/**
- * Consensus replication order.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ConsensusReplicationOrder {
-    
-    public static final int ORDER = 80;
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationNodeRule.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationNodeRule.java
deleted file mode 100644
index 9172f43..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationNodeRule.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.rule;
-
-import lombok.Getter;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationNodeRuleConfiguration;
-
-/**
- * Consensus replication node rule.
- */
-@Getter
-public final class ConsensusReplicationNodeRule implements ShardingSphereRule {
-    
-    private final String replicaPeer;
-    
-    private final String dataSourceName;
-    
-    public ConsensusReplicationNodeRule(final ConsensusReplicationNodeRuleConfiguration config) {
-        replicaPeer = config.getReplicaPeer();
-        dataSourceName = config.getDataSourceName();
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationRule.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationRule.java
deleted file mode 100644
index bcbe34b..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationRule.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.rule;
-
-import lombok.Getter;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationLogicTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Consensus replication rule.
- */
-@Slf4j
-public final class ConsensusReplicationRule implements ShardingSphereRule {
-    
-    @Getter
-    private final Collection<ConsensusReplicationTableRule> replicaTableRules;
-    
-    private final Map<String, ConsensusReplicationTableRule> physicsTableRules;
-    
-    public ConsensusReplicationRule(final ConsensusReplicationRuleConfiguration config) {
-        Collection<ConsensusReplicationTableRule> replicaTableRules = new ArrayList<>();
-        Map<String, ConsensusReplicationTableRule> physicsTableRules = new ConcurrentHashMap<>();
-        for (ConsensusReplicationLogicTableRuleConfiguration entry : config.getTables()) {
-            for (ConsensusReplicationActualTableRuleConfiguration each : entry.getReplicaGroups()) {
-                String physicsTable = each.getPhysicsTable();
-                ConsensusReplicationTableRule replaced = physicsTableRules.putIfAbsent(physicsTable, new ConsensusReplicationTableRule(each));
-                if (null != replaced) {
-                    log.error("key already exists, key={}", physicsTable);
-                    throw new IllegalArgumentException("key already exists, key=" + physicsTable);
-                }
-                replicaTableRules.add(new ConsensusReplicationTableRule(each));
-            }
-        }
-        this.replicaTableRules = replicaTableRules;
-        this.physicsTableRules = physicsTableRules;
-    }
-    
-    /**
-     * Find routing by table.
-     *
-     * @param physicsTable physics table name
-     * @return consensus replication table rule
-     */
-    public Optional<ConsensusReplicationTableRule> findRoutingByTable(final String physicsTable) {
-        return Optional.ofNullable(physicsTableRules.get(physicsTable));
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationTableRule.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationTableRule.java
deleted file mode 100644
index 4c2ec18..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationTableRule.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.rule;
-
-import lombok.Getter;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationActualTableRuleConfiguration;
-
-import java.util.Collection;
-import java.util.stream.Collectors;
-
-/**
- * Consensus replication table rule.
- */
-@Getter
-public final class ConsensusReplicationTableRule implements ShardingSphereRule {
-    
-    private final String physicsTable;
-    
-    private final String replicaGroupId;
-    
-    private final Collection<ConsensusReplicationNodeRule> replicaNodeRules;
-    
-    public ConsensusReplicationTableRule(final ConsensusReplicationActualTableRuleConfiguration config) {
-        physicsTable = config.getPhysicsTable();
-        replicaGroupId = config.getReplicaGroupId();
-        replicaNodeRules = config.getReplicaNodes().stream().map(ConsensusReplicationNodeRule::new).collect(Collectors.toList());
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/builder/ConsensusReplicationRuleBuilder.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/builder/ConsensusReplicationRuleBuilder.java
deleted file mode 100644
index 6dc93d1..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/rule/builder/ConsensusReplicationRuleBuilder.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.rule.builder;
-
-import org.apache.shardingsphere.infra.rule.ShardingSphereRuleBuilder;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.constant.ConsensusReplicationOrder;
-import org.apache.shardingsphere.replication.consensus.rule.ConsensusReplicationRule;
-
-import java.util.Collection;
-
-/**
- * Consensus replication rule builder.
- */
-public final class ConsensusReplicationRuleBuilder implements ShardingSphereRuleBuilder<ConsensusReplicationRule, ConsensusReplicationRuleConfiguration> {
-    
-    @Override
-    public ConsensusReplicationRule build(final ConsensusReplicationRuleConfiguration ruleConfig, final Collection<String> dataSourceNames) {
-        return new ConsensusReplicationRule(ruleConfig);
-    }
-    
-    @Override
-    public int getOrder() {
-        return ConsensusReplicationOrder.ORDER;
-    }
-    
-    @Override
-    public Class<ConsensusReplicationRuleConfiguration> getTypeClass() {
-        return ConsensusReplicationRuleConfiguration.class;
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationActualTableRuleConfiguration.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationActualTableRuleConfiguration.java
deleted file mode 100644
index 360e9d8..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationActualTableRuleConfiguration.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.infra.yaml.config.YamlConfiguration;
-
-import java.util.Collection;
-
-/**
- * Consensus replication actual table rule configuration for YAML.
- */
-@Getter
-@Setter
-public final class YamlConsensusReplicationActualTableRuleConfiguration implements YamlConfiguration {
-    
-    private String physicsTable;
-    
-    private String replicaGroupId;
-    
-    private Collection<YamlConsensusReplicationNodeRuleConfiguration> replicaNodes;
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationLogicTableRuleConfiguration.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationLogicTableRuleConfiguration.java
deleted file mode 100644
index c11d62f..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationLogicTableRuleConfiguration.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.infra.yaml.config.YamlConfiguration;
-
-import java.util.Collection;
-import java.util.Collections;
-
-/**
- * Consensus replication logic table rule configuration for YAML.
- */
-@Getter
-@Setter
-public final class YamlConsensusReplicationLogicTableRuleConfiguration implements YamlConfiguration {
-    
-    private String logicTable;
-    
-    private Collection<YamlConsensusReplicationActualTableRuleConfiguration> replicaGroups = Collections.emptyList();
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationNodeRuleConfiguration.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationNodeRuleConfiguration.java
deleted file mode 100644
index ddd003b..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationNodeRuleConfiguration.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.infra.yaml.config.YamlConfiguration;
-
-/**
- * Consensus replication node rule configuration for YAML.
- */
-@Getter
-@Setter
-public final class YamlConsensusReplicationNodeRuleConfiguration implements YamlConfiguration {
-    
-    private String replicaPeer;
-    
-    private String dataSourceName;
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationRuleConfiguration.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationRuleConfiguration.java
deleted file mode 100644
index ca25337..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/config/YamlConsensusReplicationRuleConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
-import org.apache.shardingsphere.infra.yaml.config.YamlRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration;
-
-import java.util.Collection;
-import java.util.Collections;
-
-/**
- * Consensus replication rule configuration for YAML.
- */
-@Getter
-@Setter
-public final class YamlConsensusReplicationRuleConfiguration implements YamlRuleConfiguration {
-    
-    private Collection<YamlConsensusReplicationLogicTableRuleConfiguration> tables = Collections.emptyList();
-    
-    @Override
-    public Class<? extends RuleConfiguration> getRuleConfigurationType() {
-        return ConsensusReplicationRuleConfiguration.class;
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationActualTableRuleConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationActualTableRuleConfigurationYamlS [...]
deleted file mode 100644
index 19aa88a..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationActualTableRuleConfigurationYamlSwapper.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.swapper;
-
-import org.apache.shardingsphere.infra.yaml.swapper.YamlSwapper;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationNodeRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationNodeRuleConfiguration;
-
-import java.util.Collection;
-import java.util.stream.Collectors;
-
-/**
- * Consensus replication actual table rule configuration YAML swapper.
- */
-public final class ConsensusReplicationActualTableRuleConfigurationYamlSwapper
-        implements YamlSwapper<YamlConsensusReplicationActualTableRuleConfiguration, ConsensusReplicationActualTableRuleConfiguration> {
-    
-    private final ConsensusReplicationNodeRuleConfigurationYamlSwapper nodeRuleConfigurationYamlSwapper = new ConsensusReplicationNodeRuleConfigurationYamlSwapper();
-    
-    @Override
-    public YamlConsensusReplicationActualTableRuleConfiguration swapToYamlConfiguration(final ConsensusReplicationActualTableRuleConfiguration data) {
-        Collection<YamlConsensusReplicationNodeRuleConfiguration> replicaNodes = data.getReplicaNodes().stream()
-                .map(nodeRuleConfigurationYamlSwapper::swapToYamlConfiguration).collect(Collectors.toList());
-        YamlConsensusReplicationActualTableRuleConfiguration result = new YamlConsensusReplicationActualTableRuleConfiguration();
-        result.setPhysicsTable(data.getPhysicsTable());
-        result.setReplicaGroupId(data.getReplicaGroupId());
-        result.setReplicaNodes(replicaNodes);
-        return result;
-    }
-    
-    @Override
-    public ConsensusReplicationActualTableRuleConfiguration swapToObject(final YamlConsensusReplicationActualTableRuleConfiguration yamlConfig) {
-        Collection<ConsensusReplicationNodeRuleConfiguration> replicaNodes = yamlConfig.getReplicaNodes().stream()
-                .map(nodeRuleConfigurationYamlSwapper::swapToObject).collect(Collectors.toList());
-        return new ConsensusReplicationActualTableRuleConfiguration(yamlConfig.getPhysicsTable(), yamlConfig.getReplicaGroupId(), replicaNodes);
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationLogicTableRuleConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationLogicTableRuleConfigurationYamlSwa [...]
deleted file mode 100644
index 3b1f670..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationLogicTableRuleConfigurationYamlSwapper.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.swapper;
-
-import org.apache.shardingsphere.infra.yaml.swapper.YamlSwapper;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationLogicTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationLogicTableRuleConfiguration;
-
-import java.util.Collection;
-import java.util.stream.Collectors;
-
-/**
- * Consensus replication logic table rule configuration YAML swapper.
- */
-public final class ConsensusReplicationLogicTableRuleConfigurationYamlSwapper 
-        implements YamlSwapper<YamlConsensusReplicationLogicTableRuleConfiguration, ConsensusReplicationLogicTableRuleConfiguration> {
-    
-    private final ConsensusReplicationActualTableRuleConfigurationYamlSwapper actualTableRuleConfigurationYamlSwapper = new ConsensusReplicationActualTableRuleConfigurationYamlSwapper();
-    
-    @Override
-    public YamlConsensusReplicationLogicTableRuleConfiguration swapToYamlConfiguration(final ConsensusReplicationLogicTableRuleConfiguration data) {
-        Collection<YamlConsensusReplicationActualTableRuleConfiguration> replicaGroups = data.getReplicaGroups().stream()
-                .map(actualTableRuleConfigurationYamlSwapper::swapToYamlConfiguration).collect(Collectors.toList());
-        YamlConsensusReplicationLogicTableRuleConfiguration result = new YamlConsensusReplicationLogicTableRuleConfiguration();
-        result.setLogicTable(data.getLogicTable());
-        result.setReplicaGroups(replicaGroups);
-        return result;
-    }
-    
-    @Override
-    public ConsensusReplicationLogicTableRuleConfiguration swapToObject(final YamlConsensusReplicationLogicTableRuleConfiguration yamlConfig) {
-        Collection<ConsensusReplicationActualTableRuleConfiguration> replicaGroups = yamlConfig.getReplicaGroups().stream()
-                .map(actualTableRuleConfigurationYamlSwapper::swapToObject).collect(Collectors.toList());
-        return new ConsensusReplicationLogicTableRuleConfiguration(yamlConfig.getLogicTable(), replicaGroups);
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationNodeRuleConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationNodeRuleConfigurationYamlSwapper.java
deleted file mode 100644
index 8c96be4..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationNodeRuleConfigurationYamlSwapper.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.swapper;
-
-import org.apache.shardingsphere.infra.yaml.swapper.YamlSwapper;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationNodeRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationNodeRuleConfiguration;
-
-/**
- * Consensus replication node rule configuration YAML swapper.
- */
-public final class ConsensusReplicationNodeRuleConfigurationYamlSwapper
-        implements YamlSwapper<YamlConsensusReplicationNodeRuleConfiguration, ConsensusReplicationNodeRuleConfiguration> {
-    
-    @Override
-    public YamlConsensusReplicationNodeRuleConfiguration swapToYamlConfiguration(final ConsensusReplicationNodeRuleConfiguration data) {
-        YamlConsensusReplicationNodeRuleConfiguration result = new YamlConsensusReplicationNodeRuleConfiguration();
-        result.setReplicaPeer(data.getReplicaPeer());
-        result.setDataSourceName(data.getDataSourceName());
-        return result;
-    }
-    
-    @Override
-    public ConsensusReplicationNodeRuleConfiguration swapToObject(final YamlConsensusReplicationNodeRuleConfiguration yamlConfig) {
-        return new ConsensusReplicationNodeRuleConfiguration(yamlConfig.getReplicaPeer(), yamlConfig.getDataSourceName());
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationRuleConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationRuleConfigurationYamlSwapper.java
deleted file mode 100644
index 80f9358..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationRuleConfigurationYamlSwapper.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.swapper;
-
-import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapper;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationLogicTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.constant.ConsensusReplicationOrder;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationLogicTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationRuleConfiguration;
-
-import java.util.Collection;
-import java.util.stream.Collectors;
-
-/**
- * Consensus replication rule configuration YAML swapper.
- */
-public final class ConsensusReplicationRuleConfigurationYamlSwapper implements YamlRuleConfigurationSwapper<YamlConsensusReplicationRuleConfiguration, ConsensusReplicationRuleConfiguration> {
-    
-    private final ConsensusReplicationLogicTableRuleConfigurationYamlSwapper logicTableRuleConfigurationYamlSwapper = new ConsensusReplicationLogicTableRuleConfigurationYamlSwapper();
-    
-    @Override
-    public YamlConsensusReplicationRuleConfiguration swapToYamlConfiguration(final ConsensusReplicationRuleConfiguration data) {
-        Collection<YamlConsensusReplicationLogicTableRuleConfiguration> yamlTables = data.getTables().stream()
-                .map(logicTableRuleConfigurationYamlSwapper::swapToYamlConfiguration)
-                .collect(Collectors.toList());
-        YamlConsensusReplicationRuleConfiguration result = new YamlConsensusReplicationRuleConfiguration();
-        result.setTables(yamlTables);
-        return result;
-    }
-    
-    @Override
-    public ConsensusReplicationRuleConfiguration swapToObject(final YamlConsensusReplicationRuleConfiguration yamlConfig) {
-        Collection<ConsensusReplicationLogicTableRuleConfiguration> tables = yamlConfig.getTables().stream()
-                .map(logicTableRuleConfigurationYamlSwapper::swapToObject)
-                .collect(Collectors.toList());
-        return new ConsensusReplicationRuleConfiguration(tables);
-    }
-    
-    @Override
-    public Class<ConsensusReplicationRuleConfiguration> getTypeClass() {
-        return ConsensusReplicationRuleConfiguration.class;
-    }
-    
-    @Override
-    public String getRuleTagName() {
-        return "CONSENSUS_REPLICATION";
-    }
-    
-    @Override
-    public int getOrder() {
-        return ConsensusReplicationOrder.ORDER;
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.rule.ShardingSphereRuleBuilder b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.rule.ShardingSphereRuleBuilder
deleted file mode 100644
index e497038..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.rule.ShardingSphereRuleBuilder
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.replication.consensus.rule.builder.ConsensusReplicationRuleBuilder
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapper b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapper
deleted file mode 100644
index 1eeff93..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapper
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.replication.consensus.yaml.swapper.ConsensusReplicationRuleConfigurationYamlSwapper
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationRuleTest.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationRuleTest.java
deleted file mode 100644
index b831323..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/rule/ConsensusReplicationRuleTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.rule;
-
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationLogicTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationNodeRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration;
-import org.junit.Test;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-public final class ConsensusReplicationRuleTest {
-    
-    private final String logicTableName = "t_order";
-    
-    private final String dataSourceName = "demo_ds_0";
-    
-    private final String physicsTable = "t_order_1";
-    
-    private final String replicaGroupId = "raftGroupTest1";
-    
-    private final String replicaPeer = "127.0.0.1:9090";
-    
-    @Test
-    public void assertCannotFindRouting() {
-        ConsensusReplicationRule consensusReplicationRule = createConsensusReplicationRule();
-        Optional<ConsensusReplicationTableRule> routingRuleOptional = consensusReplicationRule.findRoutingByTable("not_exists_table");
-        assertFalse(routingRuleOptional.isPresent());
-    }
-    
-    @Test
-    public void assertRoutingFound() {
-        ConsensusReplicationRule replicaRule = createConsensusReplicationRule();
-        Optional<ConsensusReplicationTableRule> routingRuleOptional = replicaRule.findRoutingByTable(physicsTable);
-        assertTrue(routingRuleOptional.isPresent());
-        ConsensusReplicationTableRule routingRule = routingRuleOptional.get();
-        assertNotNull(routingRule);
-        assertThat(routingRule.getPhysicsTable(), is(physicsTable));
-        assertThat(routingRule.getReplicaGroupId(), is(replicaGroupId));
-        Collection<ConsensusReplicationNodeRule> replicaNodeRules = routingRule.getReplicaNodeRules();
-        assertNotNull(replicaNodeRules);
-        assertThat(replicaNodeRules.size(), is(1));
-        ConsensusReplicationNodeRule replicaNodeRule = replicaNodeRules.iterator().next();
-        assertThat(replicaNodeRule.getReplicaPeer(), is(replicaPeer));
-        assertThat(replicaNodeRule.getDataSourceName(), is(dataSourceName));
-    }
-    
-    private ConsensusReplicationRule createConsensusReplicationRule() {
-        List<ConsensusReplicationNodeRuleConfiguration> replicaNodes = Collections.singletonList(
-            new ConsensusReplicationNodeRuleConfiguration(replicaPeer, dataSourceName)
-        );
-        ConsensusReplicationActualTableRuleConfiguration replicaGroup = new ConsensusReplicationActualTableRuleConfiguration(physicsTable, replicaGroupId, replicaNodes);
-        Collection<ConsensusReplicationActualTableRuleConfiguration> replicaGroups = Collections.singleton(replicaGroup);
-        ConsensusReplicationLogicTableRuleConfiguration table = new ConsensusReplicationLogicTableRuleConfiguration(logicTableName, replicaGroups);
-        ConsensusReplicationRuleConfiguration config = new ConsensusReplicationRuleConfiguration(Collections.singleton(table));
-        return new ConsensusReplicationRule(config);
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/rule/builder/ConsensusReplicationRuleBuilderTest.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/rule/builder/ConsensusReplicationRuleBuilderTest.java
deleted file mode 100644
index 692f1c2..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/rule/builder/ConsensusReplicationRuleBuilderTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.rule.builder;
-
-import org.apache.shardingsphere.infra.rule.ShardingSphereRuleBuilder;
-import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.rule.ConsensusReplicationRule;
-import org.junit.Test;
-
-import java.util.Collections;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-
-public final class ConsensusReplicationRuleBuilderTest {
-    
-    static {
-        ShardingSphereServiceLoader.register(ShardingSphereRuleBuilder.class);
-    }
-    
-    @Test
-    public void assertBuild() {
-        ConsensusReplicationRuleConfiguration ruleConfig = mock(ConsensusReplicationRuleConfiguration.class);
-        ShardingSphereRuleBuilder builder = OrderedSPIRegistry.getRegisteredServices(Collections.singletonList(ruleConfig), ShardingSphereRuleBuilder.class).get(ruleConfig);
-        assertThat(builder.build(ruleConfig, Collections.emptyList()), instanceOf(ConsensusReplicationRule.class));
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationActualTableRuleConfigurationYamlSwapperTest.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationActualTableRuleConfigurationY [...]
deleted file mode 100644
index 45b8f46..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationActualTableRuleConfigurationYamlSwapperTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.swapper;
-
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationNodeRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationNodeRuleConfiguration;
-import org.junit.Test;
-
-import java.util.Collections;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-
-public class ConsensusReplicationActualTableRuleConfigurationYamlSwapperTest {
-    
-    private final ConsensusReplicationActualTableRuleConfigurationYamlSwapper swapper = new ConsensusReplicationActualTableRuleConfigurationYamlSwapper();
-    
-    private final String dataSourceName = "demo_ds_0";
-    
-    private final String physicsTable = "t_order_1";
-    
-    private final String replicaGroupId = "raftGroupTest1";
-    
-    private final String replicaPeer = "127.0.0.1:9090";
-    
-    @Test(expected = IllegalArgumentException.class)
-    public void assertSwapToYamlConfigurationWithMinProperties() {
-        swapper.swapToYamlConfiguration(new ConsensusReplicationActualTableRuleConfiguration(null, null, null));
-    }
-    
-    @Test
-    public void assertSwapToYamlConfigurationWithMaxProperties() {
-        YamlConsensusReplicationActualTableRuleConfiguration yamlConfig = swapper.swapToYamlConfiguration(
-                new ConsensusReplicationActualTableRuleConfiguration(physicsTable, replicaGroupId,
-                        Collections.singletonList(new ConsensusReplicationNodeRuleConfiguration(replicaPeer, dataSourceName))));
-        assertThat(yamlConfig.getPhysicsTable(), is(physicsTable));
-        assertThat(yamlConfig.getReplicaGroupId(), is(replicaGroupId));
-        assertNotNull(yamlConfig.getReplicaNodes());
-        assertThat(yamlConfig.getReplicaNodes().size(), is(1));
-        YamlConsensusReplicationNodeRuleConfiguration resultReplicaNode = yamlConfig.getReplicaNodes().iterator().next();
-        assertThat(resultReplicaNode.getReplicaPeer(), is(replicaPeer));
-        assertThat(resultReplicaNode.getDataSourceName(), is(dataSourceName));
-    }
-    
-    @Test(expected = IllegalArgumentException.class)
-    public void assertSwapToObjectWithMinProperties() {
-        new ConsensusReplicationActualTableRuleConfiguration(null, null, null);
-    }
-    
-    @Test
-    public void assertSwapToObjectWithMaxProperties() {
-        YamlConsensusReplicationActualTableRuleConfiguration yamlConfig = new YamlConsensusReplicationActualTableRuleConfiguration();
-        yamlConfig.setPhysicsTable(physicsTable);
-        yamlConfig.setReplicaGroupId(replicaGroupId);
-        YamlConsensusReplicationNodeRuleConfiguration replicaNode = new YamlConsensusReplicationNodeRuleConfiguration();
-        replicaNode.setReplicaPeer(replicaPeer);
-        replicaNode.setDataSourceName(dataSourceName);
-        yamlConfig.setReplicaNodes(Collections.singletonList(replicaNode));
-        ConsensusReplicationActualTableRuleConfiguration config = swapper.swapToObject(yamlConfig);
-        assertThat(config.getPhysicsTable(), is(physicsTable));
-        assertThat(config.getReplicaGroupId(), is(replicaGroupId));
-        assertNotNull(config.getReplicaNodes());
-        assertThat(config.getReplicaNodes().size(), is(1));
-        ConsensusReplicationNodeRuleConfiguration resultReplicaNode = config.getReplicaNodes().iterator().next();
-        assertThat(resultReplicaNode.getReplicaPeer(), is(replicaPeer));
-        assertThat(resultReplicaNode.getDataSourceName(), is(dataSourceName));
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationNodeRuleConfigurationYamlSwapperTest.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationNodeRuleConfigurationYamlSwapperTest.java
deleted file mode 100644
index b4ea4f2..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationNodeRuleConfigurationYamlSwapperTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.swapper;
-
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationNodeRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationNodeRuleConfiguration;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-
-public class ConsensusReplicationNodeRuleConfigurationYamlSwapperTest {
-    
-    private final ConsensusReplicationNodeRuleConfigurationYamlSwapper swapper = new ConsensusReplicationNodeRuleConfigurationYamlSwapper();
-    
-    private final String dataSourceName = "demo_ds_0";
-    
-    private final String replicaPeer = "127.0.0.1:9090";
-    
-    @Test(expected = IllegalArgumentException.class)
-    public void assertSwapToYamlConfigurationWithMinProperties() {
-        swapper.swapToYamlConfiguration(new ConsensusReplicationNodeRuleConfiguration(null, null));
-    }
-    
-    @Test
-    public void assertSwapToYamlConfigurationWithMaxProperties() {
-        YamlConsensusReplicationNodeRuleConfiguration yamlConfig = swapper.swapToYamlConfiguration(
-                new ConsensusReplicationNodeRuleConfiguration(replicaPeer, dataSourceName));
-        assertNotNull(yamlConfig);
-        assertThat(yamlConfig.getReplicaPeer(), is(replicaPeer));
-        assertThat(yamlConfig.getDataSourceName(), is(dataSourceName));
-    }
-    
-    @Test(expected = IllegalArgumentException.class)
-    public void assertSwapToObjectWithMinProperties() {
-        new ConsensusReplicationNodeRuleConfiguration(null, null);
-    }
-    
-    @Test
-    public void assertSwapToObjectWithMaxProperties() {
-        YamlConsensusReplicationNodeRuleConfiguration yamlConfig = new YamlConsensusReplicationNodeRuleConfiguration();
-        yamlConfig.setReplicaPeer(replicaPeer);
-        yamlConfig.setDataSourceName(dataSourceName);
-        ConsensusReplicationNodeRuleConfiguration config = swapper.swapToObject(yamlConfig);
-        assertNotNull(config);
-        assertThat(config.getReplicaPeer(), is(replicaPeer));
-        assertThat(config.getDataSourceName(), is(dataSourceName));
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationRuleConfigurationYamlSwapperTest.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationRuleConfigurationYamlSwapperTest.java
deleted file mode 100644
index fe8e1b2..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-common/src/test/java/org/apache/shardingsphere/replication/consensus/yaml/swapper/ConsensusReplicationRuleConfigurationYamlSwapperTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.yaml.swapper;
-
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationLogicTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationNodeRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.api.config.ConsensusReplicationRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationActualTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationLogicTableRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationNodeRuleConfiguration;
-import org.apache.shardingsphere.replication.consensus.yaml.config.YamlConsensusReplicationRuleConfiguration;
-import org.junit.Test;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-public final class ConsensusReplicationRuleConfigurationYamlSwapperTest {
-    
-    private final ConsensusReplicationRuleConfigurationYamlSwapper swapper = new ConsensusReplicationRuleConfigurationYamlSwapper();
-    
-    private final String logicTableName = "t_order";
-    
-    private final String dataSourceName = "demo_ds_0";
-    
-    private final String physicsTable = "t_order_1";
-    
-    private final String replicaGroupId = "raftGroupTest1";
-    
-    private final String replicaPeer = "127.0.0.1:9090";
-    
-    @Test
-    public void assertSwapToYamlConfigurationWithMinProperties() {
-        YamlConsensusReplicationRuleConfiguration yamlConfig = swapper.swapToYamlConfiguration(new ConsensusReplicationRuleConfiguration(
-                Collections.singleton(new ConsensusReplicationLogicTableRuleConfiguration(logicTableName, null))));
-        assertNotNull(yamlConfig);
-        assertNotNull(yamlConfig.getTables());
-        assertThat(yamlConfig.getTables().size(), is(1));
-        Collection<YamlConsensusReplicationActualTableRuleConfiguration> resultReplicaGroups = yamlConfig.getTables().iterator().next().getReplicaGroups();
-        assertNotNull(resultReplicaGroups);
-        assertTrue(resultReplicaGroups.isEmpty());
-    }
-    
-    @Test
-    public void assertSwapToYamlConfigurationWithMaxProperties() {
-        ConsensusReplicationActualTableRuleConfiguration replicaGroup = new ConsensusReplicationActualTableRuleConfiguration(physicsTable, replicaGroupId,
-                Collections.singletonList(new ConsensusReplicationNodeRuleConfiguration(replicaPeer, dataSourceName)));
-        Collection<ConsensusReplicationActualTableRuleConfiguration> replicaGroups = Collections.singleton(replicaGroup);
-        ConsensusReplicationLogicTableRuleConfiguration table = new ConsensusReplicationLogicTableRuleConfiguration(logicTableName, replicaGroups);
-        YamlConsensusReplicationRuleConfiguration yamlConfig = swapper.swapToYamlConfiguration(new ConsensusReplicationRuleConfiguration(Collections.singleton(table)));
-        assertNotNull(yamlConfig);
-        assertNotNull(yamlConfig.getTables());
-        assertThat(yamlConfig.getTables().size(), is(1));
-        Collection<YamlConsensusReplicationActualTableRuleConfiguration> resultReplicaGroups = yamlConfig.getTables().iterator().next().getReplicaGroups();
-        assertNotNull(resultReplicaGroups);
-        assertThat(resultReplicaGroups.size(), is(1));
-        YamlConsensusReplicationActualTableRuleConfiguration resultReplicaGroup = resultReplicaGroups.iterator().next();
-        assertThat(resultReplicaGroup.getPhysicsTable(), is(physicsTable));
-        assertThat(resultReplicaGroup.getReplicaGroupId(), is(replicaGroupId));
-        Collection<YamlConsensusReplicationNodeRuleConfiguration> resultReplicaNodes = resultReplicaGroup.getReplicaNodes();
-        assertNotNull(resultReplicaNodes);
-        assertThat(resultReplicaNodes.size(), is(1));
-        YamlConsensusReplicationNodeRuleConfiguration resultReplicaNode = resultReplicaNodes.iterator().next();
-        assertThat(resultReplicaNode.getReplicaPeer(), is(replicaPeer));
-        assertThat(resultReplicaNode.getDataSourceName(), is(dataSourceName));
-    }
-    
-    @Test
-    public void assertSwapToObjectWithMinProperties() {
-        YamlConsensusReplicationLogicTableRuleConfiguration yamlLogicTable = new YamlConsensusReplicationLogicTableRuleConfiguration();
-        yamlLogicTable.setLogicTable(logicTableName);
-        YamlConsensusReplicationRuleConfiguration yamlConfig = new YamlConsensusReplicationRuleConfiguration();
-        yamlConfig.setTables(Collections.singleton(yamlLogicTable));
-        ConsensusReplicationRuleConfiguration config = swapper.swapToObject(yamlConfig);
-        assertNotNull(config);
-        assertNotNull(config.getTables());
-        assertThat(config.getTables().size(), is(1));
-        Collection<ConsensusReplicationActualTableRuleConfiguration> resultReplicaGroups = config.getTables().iterator().next().getReplicaGroups();
-        assertNotNull(resultReplicaGroups);
-        assertTrue(resultReplicaGroups.isEmpty());
-    }
-    
-    @Test
-    public void assertSwapToObjectWithMaxProperties() {
-        YamlConsensusReplicationActualTableRuleConfiguration replicaGroup = new YamlConsensusReplicationActualTableRuleConfiguration();
-        replicaGroup.setPhysicsTable(physicsTable);
-        replicaGroup.setReplicaGroupId(replicaGroupId);
-        YamlConsensusReplicationNodeRuleConfiguration replicaNode = new YamlConsensusReplicationNodeRuleConfiguration();
-        replicaNode.setReplicaPeer(replicaPeer);
-        replicaNode.setDataSourceName(dataSourceName);
-        replicaGroup.setReplicaNodes(Collections.singletonList(replicaNode));
-        Collection<YamlConsensusReplicationActualTableRuleConfiguration> replicaGroups = Collections.singleton(replicaGroup);
-        YamlConsensusReplicationLogicTableRuleConfiguration table = new YamlConsensusReplicationLogicTableRuleConfiguration();
-        table.setLogicTable(logicTableName);
-        table.setReplicaGroups(replicaGroups);
-        YamlConsensusReplicationRuleConfiguration yamlConfig = new YamlConsensusReplicationRuleConfiguration();
-        yamlConfig.setTables(Collections.singleton(table));
-        ConsensusReplicationRuleConfiguration config = swapper.swapToObject(yamlConfig);
-        assertNotNull(config);
-        assertNotNull(config.getTables());
-        assertThat(config.getTables().size(), is(1));
-        Collection<ConsensusReplicationActualTableRuleConfiguration> resultReplicaGroups = config.getTables().iterator().next().getReplicaGroups();
-        assertNotNull(resultReplicaGroups);
-        assertThat(resultReplicaGroups.size(), is(1));
-        ConsensusReplicationActualTableRuleConfiguration resultReplicaGroup = resultReplicaGroups.iterator().next();
-        assertThat(resultReplicaGroup.getPhysicsTable(), is(physicsTable));
-        assertThat(resultReplicaGroup.getReplicaGroupId(), is(replicaGroupId));
-        Collection<ConsensusReplicationNodeRuleConfiguration> resultReplicaNodes = resultReplicaGroup.getReplicaNodes();
-        assertNotNull(resultReplicaNodes);
-        assertThat(resultReplicaNodes.size(), is(1));
-        ConsensusReplicationNodeRuleConfiguration resultReplicaNode = resultReplicaNodes.iterator().next();
-        assertThat(resultReplicaNode.getReplicaPeer(), is(replicaPeer));
-        assertThat(resultReplicaNode.getDataSourceName(), is(dataSourceName));
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/pom.xml b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/pom.xml
deleted file mode 100644
index fb053ba..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/pom.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-consensus-replication</artifactId>
-        <version>5.0.0-RC1-SNAPSHOT</version>
-    </parent>
-    <artifactId>shardingsphere-consensus-replication-executor</artifactId>
-    <name>${project.artifactId}</name>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-consensus-replication-common</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-consensus-replication-route</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-executor</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/callback/ConsensusReplicationExecutorCallback.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/callback/ConsensusReplicationExecutorCallback.java
deleted file mode 100644
index 73177a7..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/callback/ConsensusReplicationExecutorCallback.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.execute.callback;
-
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * Consensus replication executor callback.
- *
- * @param <I> type of input value
- * @param <O> type of output value
- */
-public interface ConsensusReplicationExecutorCallback<I, O> {
-    
-    /**
-     * Execute.
-     *
-     * @param inputs input values
-     * @param isTrunkThread is execution in trunk thread
-     * @param dataMap data map
-     * @return execution results
-     * @throws SQLException throw when execute failure
-     */
-    Collection<O> execute(Collection<I> inputs, boolean isTrunkThread, Map<String, Object> dataMap) throws SQLException;
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/callback/DefaultConsensusReplicationExecutorCallback.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/callback/DefaultConsensusReplicationExecutorCallback.java
deleted file mode 100644
index e1a0cbe..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/callback/DefaultConsensusReplicationExecutorCallback.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.execute.callback;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.infra.exception.ShardingSphereException;
-import org.apache.shardingsphere.infra.executor.sql.raw.RawSQLExecuteUnit;
-import org.apache.shardingsphere.infra.executor.sql.raw.execute.callback.RawExecutorCallback;
-import org.apache.shardingsphere.infra.executor.sql.raw.execute.result.ExecuteResult;
-import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * Default consensus replication executor callback.
- */
-@Slf4j
-public final class DefaultConsensusReplicationExecutorCallback implements RawExecutorCallback<RawSQLExecuteUnit, ExecuteResult> {
-    
-    static {
-        ShardingSphereServiceLoader.register(ConsensusReplicationExecutorCallback.class);
-    }
-    
-    private final Collection<ConsensusReplicationExecutorCallback> replicaExecutorCallbacks;
-    
-    public DefaultConsensusReplicationExecutorCallback() {
-        replicaExecutorCallbacks = ShardingSphereServiceLoader.newServiceInstances(ConsensusReplicationExecutorCallback.class);
-        if (null == replicaExecutorCallbacks || replicaExecutorCallbacks.isEmpty()) {
-            throw new ShardingSphereException("not found replica executor callback impl");
-        }
-    }
-    
-    @Override
-    public Collection<ExecuteResult> execute(final Collection<RawSQLExecuteUnit> inputs, final boolean isTrunkThread, final Map<String, Object> dataMap) throws SQLException {
-        return replicaExecutorCallbacks.iterator().next().execute(inputs, isTrunkThread, dataMap);
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/group/ConsensusReplicationExecuteGroupDecorator.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/group/ConsensusReplicationExecuteGroupDecorator.java
deleted file mode 100644
index 89db9d5..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/java/org/apache/shardingsphere/replication/consensus/execute/group/ConsensusReplicationExecuteGroupDecorator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.execute.group;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.infra.exception.ShardingSphereException;
-import org.apache.shardingsphere.infra.executor.kernel.InputGroup;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
-import org.apache.shardingsphere.infra.executor.sql.context.SQLRuntimeContext;
-import org.apache.shardingsphere.infra.executor.sql.raw.RawSQLExecuteUnit;
-import org.apache.shardingsphere.infra.executor.sql.raw.group.RawExecuteGroupDecorator;
-import org.apache.shardingsphere.infra.route.context.RouteContext;
-import org.apache.shardingsphere.infra.route.context.RouteStageContext;
-import org.apache.shardingsphere.replication.consensus.constant.ConsensusReplicationOrder;
-import org.apache.shardingsphere.replication.consensus.route.engine.ConsensusReplicationGroup;
-import org.apache.shardingsphere.replication.consensus.route.engine.ConsensusReplicationRouteStageContext;
-import org.apache.shardingsphere.replication.consensus.rule.ConsensusReplicationRule;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Execute group decorator for consensus replication.
- */
-@Slf4j
-public final class ConsensusReplicationExecuteGroupDecorator implements RawExecuteGroupDecorator<RawSQLExecuteUnit, ConsensusReplicationRule> {
-    
-    /**
-     * TODO FIXED ME when the proxy is capable of handling tableless operation commands, it can be removed.
-     */
-    private final boolean supportWithoutTableCommand = true;
-    
-    @Override
-    public Collection<InputGroup<RawSQLExecuteUnit>> decorate(final RouteContext routeContext, final ConsensusReplicationRule rule, final Collection<InputGroup<RawSQLExecuteUnit>> inputGroups) {
-        if (!inputGroups.isEmpty()) {
-            if (!(inputGroups.iterator().next().getInputs().get(0) instanceof RawSQLExecuteUnit)) {
-                log.debug("inputGroups ExecuteUnit is not RawSQLExecuteUnit, ignore decorate");
-                return inputGroups;
-            }
-        }
-        RouteStageContext routeStageContext = routeContext.getRouteStageContexts().get(getTypeClass());
-        ConsensusReplicationRouteStageContext replicaRouteStageContext = (ConsensusReplicationRouteStageContext) routeStageContext;
-        Map<String, ConsensusReplicationGroup> replicaGroups = replicaRouteStageContext.getReplicaGroups();
-        for (InputGroup<RawSQLExecuteUnit> each : inputGroups) {
-            routeReplicaGroup(each, replicaRouteStageContext.getSchemaName(), replicaGroups, replicaRouteStageContext.isReadOnly());
-        }
-        return inputGroups;
-    }
-    
-    private void routeReplicaGroup(final InputGroup<RawSQLExecuteUnit> inputGroup, final String schemaName, final Map<String, ConsensusReplicationGroup> replicaGroups, final boolean readOnly) {
-        for (RawSQLExecuteUnit each : inputGroup.getInputs()) {
-            ExecutionUnit executionUnit = each.getExecutionUnit();
-            SQLRuntimeContext sqlRuntimeContext = executionUnit.getSqlUnit().getSqlRuntimeContext();
-            List<String> actualTables = sqlRuntimeContext.getActualTables();
-            if ((null == actualTables || actualTables.isEmpty()) && !supportWithoutTableCommand) {
-                throw new ShardingSphereException("route fail: actual tables is empty");
-            }
-            ConsensusReplicationGroup replicaGroup = getReplicaGroup(actualTables, replicaGroups);
-            each.setRawGroup(replicaGroup);
-            sqlRuntimeContext.setSchemaName(schemaName);
-            sqlRuntimeContext.setReadOnly(readOnly);
-        }
-    }
-    
-    private ConsensusReplicationGroup getReplicaGroup(final List<String> actualTables, final Map<String, ConsensusReplicationGroup> replicaGroups) {
-        ConsensusReplicationGroup replicaGroup = null;
-        if (null != actualTables && !actualTables.isEmpty()) {
-            for (String each : actualTables) {
-                replicaGroup = replicaGroups.get(each);
-                if (null != replicaGroup) {
-                    break;
-                }
-            }
-        } else {
-            if (!replicaGroups.isEmpty()) {
-                replicaGroup = replicaGroups.entrySet().iterator().next().getValue();
-            }
-        }
-        if (null == replicaGroup) {
-            throw new ShardingSphereException("route fail: route result is empty");
-        }
-        return replicaGroup;
-    }
-    
-    @Override
-    public int getOrder() {
-        return ConsensusReplicationOrder.ORDER;
-    }
-    
-    @Override
-    public Class<ConsensusReplicationRule> getTypeClass() {
-        return ConsensusReplicationRule.class;
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.group.ExecuteGroupDecorator b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.group.ExecuteGroupDecorator
deleted file mode 100644
index 1f8de1d..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.group.ExecuteGroupDecorator
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.replication.consensus.execute.group.ConsensusReplicationExecuteGroupDecorator
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.raw.execute.callback.RawExecutorCallback b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.raw.execute.callback.RawExecutorCallback
deleted file mode 100644
index 8695694..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-executor/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.raw.execute.callback.RawExecutorCallback
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.replication.consensus.execute.callback.DefaultConsensusReplicationExecutorCallback
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/pom.xml b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/pom.xml
deleted file mode 100644
index d7c7112..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/pom.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.shardingsphere</groupId>
-        <artifactId>shardingsphere-consensus-replication</artifactId>
-        <version>5.0.0-RC1-SNAPSHOT</version>
-    </parent>
-    <artifactId>shardingsphere-consensus-replication-route</artifactId>
-    <name>${project.artifactId}</name>
-    
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-route</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-consensus-replication-common</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationGroup.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationGroup.java
deleted file mode 100644
index 66fe687..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationGroup.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.route.engine;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import org.apache.shardingsphere.infra.route.context.RawGroup;
-
-import java.util.Collection;
-
-/**
- * Consensus replication group.
- */
-@AllArgsConstructor
-@Getter
-public final class ConsensusReplicationGroup implements RawGroup {
-    
-    public static final String BLANK_CONSENSUS_REPLICATION_GROUP_KEY = "Nil";
-    
-    private final String physicsTable;
-    
-    private final String replicaGroupId;
-    
-    private final Collection<ConsensusReplicationGroupNode> replicaNodeRules;
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationGroupNode.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationGroupNode.java
deleted file mode 100644
index 317d47f..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationGroupNode.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.route.engine;
-
-import lombok.Getter;
-import org.apache.shardingsphere.replication.consensus.rule.ConsensusReplicationNodeRule;
-
-/**
- * Consensus replication group node.
- */
-@Getter
-public final class ConsensusReplicationGroupNode {
-    
-    private final String replicaPeer;
-    
-    private final String dataSourceName;
-    
-    public ConsensusReplicationGroupNode(final ConsensusReplicationNodeRule replicaNodeRule) {
-        replicaPeer = replicaNodeRule.getReplicaPeer();
-        dataSourceName = replicaNodeRule.getDataSourceName();
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationRouteStageContext.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationRouteStageContext.java
deleted file mode 100644
index 3317b96..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationRouteStageContext.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.route.engine;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.infra.route.context.RouteStageContext;
-
-import java.util.Map;
-
-/**
- * Consensus replication route stage context.
- */
-@RequiredArgsConstructor
-@Getter
-public final class ConsensusReplicationRouteStageContext implements RouteStageContext {
-    
-    private final String schemaName;
-    
-    private final Map<String, ConsensusReplicationGroup> replicaGroups;
-    
-    private final boolean readOnly;
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationSQLRouter.java b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationSQLRouter.java
deleted file mode 100644
index 3ef4347..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/java/org/apache/shardingsphere/replication/consensus/route/engine/ConsensusReplicationSQLRouter.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.replication.consensus.route.engine;
-
-import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
-import org.apache.shardingsphere.infra.route.SQLRouter;
-import org.apache.shardingsphere.infra.route.context.RouteContext;
-import org.apache.shardingsphere.infra.route.context.RouteMapper;
-import org.apache.shardingsphere.infra.route.context.RouteUnit;
-import org.apache.shardingsphere.infra.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.binder.LogicSQL;
-import org.apache.shardingsphere.replication.consensus.constant.ConsensusReplicationOrder;
-import org.apache.shardingsphere.replication.consensus.rule.ConsensusReplicationRule;
-import org.apache.shardingsphere.replication.consensus.rule.ConsensusReplicationTableRule;
-import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtil;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-/**
- * Consensus replication SQL router.
- */
-public final class ConsensusReplicationSQLRouter implements SQLRouter<ConsensusReplicationRule> {
-    
-    @Override
-    public RouteContext createRouteContext(final LogicSQL logicSQL, final ShardingSphereSchema schema, final ConsensusReplicationRule rule, final ConfigurationProperties props) {
-        RouteContext result = new RouteContext();
-        ConsensusReplicationTableRule tableRule = rule.getReplicaTableRules().iterator().next();
-        ConsensusReplicationGroup replicaGroup = new ConsensusReplicationGroup(
-                tableRule.getPhysicsTable(), tableRule.getReplicaGroupId(),
-                tableRule.getReplicaNodeRules().stream().map(ConsensusReplicationGroupNode::new).collect(Collectors.toList()));
-        Map<String, ConsensusReplicationGroup> replicaGroups = Collections.singletonMap(ConsensusReplicationGroup.BLANK_CONSENSUS_REPLICATION_GROUP_KEY, replicaGroup);
-        boolean isReadOnly = SQLUtil.isReadOnly(logicSQL.getSqlStatementContext().getSqlStatement());
-        result.getRouteStageContexts().put(getTypeClass(), new ConsensusReplicationRouteStageContext(schema.getName(), replicaGroups, isReadOnly));
-        return result;
-    }
-    
-    @Override
-    public void decorateRouteContext(final RouteContext routeContext,
-                                     final LogicSQL logicSQL, final ShardingSphereSchema schema, final ConsensusReplicationRule rule, final ConfigurationProperties props) {
-        Map<String, ConsensusReplicationGroup> replicaGroups = new HashMap<>();
-        for (RouteUnit each : routeContext.getRouteUnits()) {
-            Collection<RouteMapper> routeMappers = each.getTableMappers();
-            if (null == routeMappers || routeMappers.isEmpty()) {
-                ConsensusReplicationTableRule tableRule = rule.getReplicaTableRules().iterator().next();
-                ConsensusReplicationGroup replicaGroup = new ConsensusReplicationGroup(
-                        tableRule.getPhysicsTable(), tableRule.getReplicaGroupId(),
-                        tableRule.getReplicaNodeRules().stream().map(ConsensusReplicationGroupNode::new).collect(Collectors.toList()));
-                replicaGroups.put(ConsensusReplicationGroup.BLANK_CONSENSUS_REPLICATION_GROUP_KEY, replicaGroup);
-            } else {
-                routeReplicaGroups(routeMappers, rule, replicaGroups);
-            }
-        }
-        boolean isReadOnly = SQLUtil.isReadOnly(logicSQL.getSqlStatementContext().getSqlStatement());
-        routeContext.getRouteStageContexts().put(getTypeClass(), new ConsensusReplicationRouteStageContext(schema.getName(), replicaGroups, isReadOnly));
-    }
-    
-    private void routeReplicaGroups(final Collection<RouteMapper> routeMappers, final ConsensusReplicationRule rule, final Map<String, ConsensusReplicationGroup> replicaGroups) {
-        for (RouteMapper each : routeMappers) {
-            String actualTableName = each.getActualName();
-            Optional<ConsensusReplicationTableRule> tableRuleOptional = rule.findRoutingByTable(actualTableName);
-            ConsensusReplicationGroup replicaGroup;
-            if (tableRuleOptional.isPresent()) {
-                ConsensusReplicationTableRule tableRule = tableRuleOptional.get();
-                replicaGroup = new ConsensusReplicationGroup(
-                        tableRule.getPhysicsTable(), tableRule.getReplicaGroupId(),
-                        tableRule.getReplicaNodeRules().stream().map(ConsensusReplicationGroupNode::new).collect(Collectors.toList()));
-                replicaGroups.put(actualTableName, replicaGroup);
-            } else {
-                ConsensusReplicationTableRule tableRule = rule.getReplicaTableRules().iterator().next();
-                replicaGroup = new ConsensusReplicationGroup(
-                        tableRule.getPhysicsTable(), tableRule.getReplicaGroupId(),
-                        tableRule.getReplicaNodeRules().stream().map(ConsensusReplicationGroupNode::new).collect(Collectors.toList()));
-            }
-            replicaGroups.put(actualTableName, replicaGroup);
-        }
-    }
-    
-    @Override
-    public int getOrder() {
-        return ConsensusReplicationOrder.ORDER;
-    }
-    
-    @Override
-    public Class<ConsensusReplicationRule> getTypeClass() {
-        return ConsensusReplicationRule.class;
-    }
-}
diff --git a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.SQLRouter b/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.SQLRouter
deleted file mode 100644
index 3a55c2b..0000000
--- a/shardingsphere-features/shardingsphere-consensus-replication/shardingsphere-consensus-replication-route/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.SQLRouter
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.replication.consensus.route.engine.ConsensusReplicationSQLRouter
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/pom.xml b/shardingsphere-jdbc/shardingsphere-jdbc-core/pom.xml
index e804ff8..0a32847 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/pom.xml
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/pom.xml
@@ -102,16 +102,6 @@
             <artifactId>shardingsphere-encrypt-merge</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-consensus-replication-route</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-consensus-replication-executor</artifactId>
-            <version>${project.version}</version>
-        </dependency>
         
         <dependency>
             <groupId>com.zaxxer</groupId>
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/pom.xml b/shardingsphere-proxy/shardingsphere-proxy-backend/pom.xml
index dcdea18..c32d885 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/pom.xml
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/pom.xml
@@ -109,16 +109,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-consensus-replication-route</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-consensus-replication-executor</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
             <artifactId>shardingsphere-transaction-xa-core</artifactId>
             <version>${project.parent.version}</version>
         </dependency>