You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by zh...@apache.org on 2022/04/07 14:17:19 UTC

[servicecomb-pack] branch SCB-2425 updated: Update document

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

zhanglei pushed a commit to branch SCB-2425
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git


The following commit(s) were added to refs/heads/SCB-2425 by this push:
     new 150e2512 Update document
150e2512 is described below

commit 150e251253feb2cc487074b2c9942a3a9b1a7fbb
Author: Lei Zhang <zh...@apache.org>
AuthorDate: Thu Apr 7 22:17:03 2022 +0800

    Update document
---
 alpha/alpha-benchmark/README.md                    |   2 +-
 docs/fsm/eventchannel_zh.md                        |  56 ---------------------
 docs/{fsm => spec-saga-akka}/akka_zh.md            |   0
 docs/{fsm => spec-saga-akka}/apis_zh.md            |   0
 .../assets/alpha-cluster-architecture.png          | Bin
 .../assets/benchmark-alpha-1.png                   | Bin
 .../assets/benchmark-alpha-2.png                   | Bin
 .../assets/cmd-0.4.0-1w-100.png                    | Bin
 .../assets/cmd-0.4.0-1w-500.png                    | Bin
 .../assets/cmd-0.5.0-1w-100.png                    | Bin
 .../assets/cmd-0.5.0-1w-1000.png                   | Bin
 .../assets/cmd-0.5.0-1w-2000.png                   | Bin
 .../assets/cmd-0.5.0-1w-500.png                    | Bin
 .../assets/cmd-0.5.0-5w-1000.png                   | Bin
 .../assets/cmd-0.5.0-5w-2000.png                   | Bin
 .../assets/cmd-0.5.0-5w-3000.png                   | Bin
 docs/{fsm => spec-saga-akka}/assets/fsm.png        | Bin
 .../assets/saga_state_diagram.png                  | Bin
 .../{fsm => spec-saga-akka}/assets/state_table.png | Bin
 .../assets/ui-dashboard.png                        | Bin
 .../assets/ui-transaction-details-compensated.png  | Bin
 .../ui-transaction-details-failed-timeout.png      | Bin
 ...ui-transaction-details-failed-unpredictable.png | Bin
 .../assets/ui-transaction-details-failed.png       | Bin
 .../assets/ui-transaction-details-successful.png   | Bin
 .../assets/ui-transactions-list.png                | Bin
 .../assets/vm-0.4.0-1w-100.png                     | Bin
 .../assets/vm-0.4.0-1w-500.png                     | Bin
 .../assets/vm-0.5.0-1w-100.png                     | Bin
 .../assets/vm-0.5.0-1w-1000.png                    | Bin
 .../assets/vm-0.5.0-1w-2000.png                    | Bin
 .../assets/vm-0.5.0-1w-500.png                     | Bin
 .../assets/vm-0.5.0-5w-1000.png                    | Bin
 .../assets/vm-0.5.0-5w-2000.png                    | Bin
 .../assets/vm-0.5.0-5w-3000.png                    | Bin
 docs/{fsm => spec-saga-akka}/benchmark_zh.md       |  11 ++--
 docs/{fsm => spec-saga-akka}/design_fsm_zh.md      |   0
 docs/spec-saga-akka/eventchannel_zh.md             |  56 +++++++++++++++++++++
 docs/{fsm => spec-saga-akka}/fsm_manual.md         |  51 +++++++++----------
 docs/{fsm => spec-saga-akka}/fsm_manual_zh.md      |  35 +++++++------
 docs/{fsm => spec-saga-akka}/persistence_zh.md     |  12 ++---
 .../plantuml/saga-state-diagram.puml               |   0
 docs/user_guide.md                                 |  28 +++++++++--
 docs/user_guide_zh.md                              |  32 +++++++++---
 44 files changed, 159 insertions(+), 124 deletions(-)

diff --git a/alpha/alpha-benchmark/README.md b/alpha/alpha-benchmark/README.md
index 32d01e7e..27658475 100644
--- a/alpha/alpha-benchmark/README.md
+++ b/alpha/alpha-benchmark/README.md
@@ -70,7 +70,7 @@ java \
   -Dcom.sun.management.jmxremote.port=9090 \
   -Dcom.sun.management.jmxremote.ssl=false \
   -Dcom.sun.management.jmxremote.authenticate=false \
-  -jar alpha-server-0.5.0-SNAPSHOT-exec.jar \
+  -jar alpha-server-0.7.0-SNAPSHOT-exec.jar \
   --spring.datasource.username=saga-user \
   --spring.datasource.password=saga-password \
   --spring.datasource.url="jdbc:postgresql://0.0.09.0:5432/saga?useSSL=false" \
diff --git a/docs/fsm/eventchannel_zh.md b/docs/fsm/eventchannel_zh.md
deleted file mode 100644
index 207eb935..00000000
--- a/docs/fsm/eventchannel_zh.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# 事件通道
-
-Alpha 收到 Omeag 发送的事件后放入事件通道等待 Akka 处理,事件通道有三种实现方式,一种是内存通道另外是 Kafka,Rabbit 通道
-
-| 通道类型 | 模式 | 说明                                                         |
-| -------- | ---- | ------------------------------------------------------------ |
-| memory   | 单例 | 使用内存作为数据通道,不建议在生产环境使用                   |
-| kafka    | 集群 | 使用 Kafka 作为数据通道,使用全局事务ID作为分区策略,集群中的所有节点同时工作,可水平扩展,当配置了 spring.profiles.active=prd,cluster 参数后默认就使用 kafka 通道 |
-| rabbit    | 集群 | 使用 rabbit 作为数据通道,使用全局事务ID作为分区策略, 由于rabbit 原生不支持分区,所以引用了  [spring-cloud-stream](https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit)  |
-
- 可以使用参数 `alpha.feature.akka.channel.type` 配置通道类型
-
-- Memory 通道参数
-
-| 参数名                                 | 参数值 | 说明                                        |
-| -------------------------------------- | ------ | ------------------------------------------- |
-| alpha.feature.akka.channel.type        | memory |                                             |
-| alpha.feature.akka.channel.memory.size | -1     | momory类型时内存队列大小,-1表示Integer.MAX |
-
-- Kafka 通道参数
-
-| 参数名                                  | 参数值   | 说明                                        |
-| --------------------------------------- | -------- | ------------------------------------------- |
-| alpha.feature.akka.channel.type         | kafka    |                                             |
-| spring.kafka.bootstrap-servers          | -1       | momory类型时内存队列大小,-1表示Integer.MAX |
-| spring.kafka.producer.batch-size        | 16384    |                                             |
-| spring.kafka.producer.retries           | 0        |                                             |
-| spring.kafka.producer.buffer.memory     | 33554432 |                                             |
-| spring.kafka.consumer.auto.offset.reset | earliest |                                             |
-| spring.kafka.listener.pollTimeout       | 1500     |                                             |
-| kafka.numPartitions                     | 6        |                                             |
-| kafka.replicationFactor                 | 1        |                                             |
-
-- Rabbit 通道参数
-
-| 参数名                                   | 参数值   | 说明                                        |
-| --------------------------------------- | -------- | ------------------------------------------- |
-| alpha.feature.akka.channel.type         | rabbit   |                                             |
-| spring.cloud.stream.instance-index      | 0       |  分区索引| 
-| spring.cloud.stream.instance-count       | 1       |                                             |
-| spring.cloud.stream.bindings.service-comb-pack-producer.producer.partition-count| 1|分区数量,分区数量需要与alpha-server保持一致|
-| spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.virtual-host| servicecomb-pack |     |
-| spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.host | rabbitmq.servicecomb.io | |
-| spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.username | servicecomb-pack | |
-| spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.password | H123213PWD ||
-|spring.cloud.stream.binders.defaultRabbit.type|rabbit|
-|spring.cloud.stream.bindings.service-comb-pack-producer.destination|exchange-service-comb-pack||
-|spring.cloud.stream.bindings.service-comb-pack-producer.content-type|application/json|
-|spring.cloud.stream.bindings.service-comb-pack-producer.producer.partition-key-expression|headers['partitionKey'] | 分区表达式
-|spring.cloud.stream.bindings.service-comb-pack-consumer.group|group-pack|
-|spring.cloud.stream.bindings.service-comb-pack-consumer.content-type|application/json|
-|spring.cloud.stream.bindings.service-comb-pack-consumer.destination|exchange-service-comb-pack|
-spring.cloud.stream.bindings.service-comb-pack-consumer.consumer.partitioned|true|
-
-                                          
-
diff --git a/docs/fsm/akka_zh.md b/docs/spec-saga-akka/akka_zh.md
similarity index 100%
rename from docs/fsm/akka_zh.md
rename to docs/spec-saga-akka/akka_zh.md
diff --git a/docs/fsm/apis_zh.md b/docs/spec-saga-akka/apis_zh.md
similarity index 100%
rename from docs/fsm/apis_zh.md
rename to docs/spec-saga-akka/apis_zh.md
diff --git a/docs/fsm/assets/alpha-cluster-architecture.png b/docs/spec-saga-akka/assets/alpha-cluster-architecture.png
similarity index 100%
rename from docs/fsm/assets/alpha-cluster-architecture.png
rename to docs/spec-saga-akka/assets/alpha-cluster-architecture.png
diff --git a/docs/fsm/assets/benchmark-alpha-1.png b/docs/spec-saga-akka/assets/benchmark-alpha-1.png
similarity index 100%
rename from docs/fsm/assets/benchmark-alpha-1.png
rename to docs/spec-saga-akka/assets/benchmark-alpha-1.png
diff --git a/docs/fsm/assets/benchmark-alpha-2.png b/docs/spec-saga-akka/assets/benchmark-alpha-2.png
similarity index 100%
rename from docs/fsm/assets/benchmark-alpha-2.png
rename to docs/spec-saga-akka/assets/benchmark-alpha-2.png
diff --git a/docs/fsm/assets/cmd-0.4.0-1w-100.png b/docs/spec-saga-akka/assets/cmd-0.4.0-1w-100.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.4.0-1w-100.png
rename to docs/spec-saga-akka/assets/cmd-0.4.0-1w-100.png
diff --git a/docs/fsm/assets/cmd-0.4.0-1w-500.png b/docs/spec-saga-akka/assets/cmd-0.4.0-1w-500.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.4.0-1w-500.png
rename to docs/spec-saga-akka/assets/cmd-0.4.0-1w-500.png
diff --git a/docs/fsm/assets/cmd-0.5.0-1w-100.png b/docs/spec-saga-akka/assets/cmd-0.5.0-1w-100.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.5.0-1w-100.png
rename to docs/spec-saga-akka/assets/cmd-0.5.0-1w-100.png
diff --git a/docs/fsm/assets/cmd-0.5.0-1w-1000.png b/docs/spec-saga-akka/assets/cmd-0.5.0-1w-1000.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.5.0-1w-1000.png
rename to docs/spec-saga-akka/assets/cmd-0.5.0-1w-1000.png
diff --git a/docs/fsm/assets/cmd-0.5.0-1w-2000.png b/docs/spec-saga-akka/assets/cmd-0.5.0-1w-2000.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.5.0-1w-2000.png
rename to docs/spec-saga-akka/assets/cmd-0.5.0-1w-2000.png
diff --git a/docs/fsm/assets/cmd-0.5.0-1w-500.png b/docs/spec-saga-akka/assets/cmd-0.5.0-1w-500.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.5.0-1w-500.png
rename to docs/spec-saga-akka/assets/cmd-0.5.0-1w-500.png
diff --git a/docs/fsm/assets/cmd-0.5.0-5w-1000.png b/docs/spec-saga-akka/assets/cmd-0.5.0-5w-1000.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.5.0-5w-1000.png
rename to docs/spec-saga-akka/assets/cmd-0.5.0-5w-1000.png
diff --git a/docs/fsm/assets/cmd-0.5.0-5w-2000.png b/docs/spec-saga-akka/assets/cmd-0.5.0-5w-2000.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.5.0-5w-2000.png
rename to docs/spec-saga-akka/assets/cmd-0.5.0-5w-2000.png
diff --git a/docs/fsm/assets/cmd-0.5.0-5w-3000.png b/docs/spec-saga-akka/assets/cmd-0.5.0-5w-3000.png
similarity index 100%
rename from docs/fsm/assets/cmd-0.5.0-5w-3000.png
rename to docs/spec-saga-akka/assets/cmd-0.5.0-5w-3000.png
diff --git a/docs/fsm/assets/fsm.png b/docs/spec-saga-akka/assets/fsm.png
similarity index 100%
rename from docs/fsm/assets/fsm.png
rename to docs/spec-saga-akka/assets/fsm.png
diff --git a/docs/fsm/assets/saga_state_diagram.png b/docs/spec-saga-akka/assets/saga_state_diagram.png
similarity index 100%
rename from docs/fsm/assets/saga_state_diagram.png
rename to docs/spec-saga-akka/assets/saga_state_diagram.png
diff --git a/docs/fsm/assets/state_table.png b/docs/spec-saga-akka/assets/state_table.png
similarity index 100%
rename from docs/fsm/assets/state_table.png
rename to docs/spec-saga-akka/assets/state_table.png
diff --git a/docs/fsm/assets/ui-dashboard.png b/docs/spec-saga-akka/assets/ui-dashboard.png
similarity index 100%
rename from docs/fsm/assets/ui-dashboard.png
rename to docs/spec-saga-akka/assets/ui-dashboard.png
diff --git a/docs/fsm/assets/ui-transaction-details-compensated.png b/docs/spec-saga-akka/assets/ui-transaction-details-compensated.png
similarity index 100%
rename from docs/fsm/assets/ui-transaction-details-compensated.png
rename to docs/spec-saga-akka/assets/ui-transaction-details-compensated.png
diff --git a/docs/fsm/assets/ui-transaction-details-failed-timeout.png b/docs/spec-saga-akka/assets/ui-transaction-details-failed-timeout.png
similarity index 100%
rename from docs/fsm/assets/ui-transaction-details-failed-timeout.png
rename to docs/spec-saga-akka/assets/ui-transaction-details-failed-timeout.png
diff --git a/docs/fsm/assets/ui-transaction-details-failed-unpredictable.png b/docs/spec-saga-akka/assets/ui-transaction-details-failed-unpredictable.png
similarity index 100%
rename from docs/fsm/assets/ui-transaction-details-failed-unpredictable.png
rename to docs/spec-saga-akka/assets/ui-transaction-details-failed-unpredictable.png
diff --git a/docs/fsm/assets/ui-transaction-details-failed.png b/docs/spec-saga-akka/assets/ui-transaction-details-failed.png
similarity index 100%
rename from docs/fsm/assets/ui-transaction-details-failed.png
rename to docs/spec-saga-akka/assets/ui-transaction-details-failed.png
diff --git a/docs/fsm/assets/ui-transaction-details-successful.png b/docs/spec-saga-akka/assets/ui-transaction-details-successful.png
similarity index 100%
rename from docs/fsm/assets/ui-transaction-details-successful.png
rename to docs/spec-saga-akka/assets/ui-transaction-details-successful.png
diff --git a/docs/fsm/assets/ui-transactions-list.png b/docs/spec-saga-akka/assets/ui-transactions-list.png
similarity index 100%
rename from docs/fsm/assets/ui-transactions-list.png
rename to docs/spec-saga-akka/assets/ui-transactions-list.png
diff --git a/docs/fsm/assets/vm-0.4.0-1w-100.png b/docs/spec-saga-akka/assets/vm-0.4.0-1w-100.png
similarity index 100%
rename from docs/fsm/assets/vm-0.4.0-1w-100.png
rename to docs/spec-saga-akka/assets/vm-0.4.0-1w-100.png
diff --git a/docs/fsm/assets/vm-0.4.0-1w-500.png b/docs/spec-saga-akka/assets/vm-0.4.0-1w-500.png
similarity index 100%
rename from docs/fsm/assets/vm-0.4.0-1w-500.png
rename to docs/spec-saga-akka/assets/vm-0.4.0-1w-500.png
diff --git a/docs/fsm/assets/vm-0.5.0-1w-100.png b/docs/spec-saga-akka/assets/vm-0.5.0-1w-100.png
similarity index 100%
rename from docs/fsm/assets/vm-0.5.0-1w-100.png
rename to docs/spec-saga-akka/assets/vm-0.5.0-1w-100.png
diff --git a/docs/fsm/assets/vm-0.5.0-1w-1000.png b/docs/spec-saga-akka/assets/vm-0.5.0-1w-1000.png
similarity index 100%
rename from docs/fsm/assets/vm-0.5.0-1w-1000.png
rename to docs/spec-saga-akka/assets/vm-0.5.0-1w-1000.png
diff --git a/docs/fsm/assets/vm-0.5.0-1w-2000.png b/docs/spec-saga-akka/assets/vm-0.5.0-1w-2000.png
similarity index 100%
rename from docs/fsm/assets/vm-0.5.0-1w-2000.png
rename to docs/spec-saga-akka/assets/vm-0.5.0-1w-2000.png
diff --git a/docs/fsm/assets/vm-0.5.0-1w-500.png b/docs/spec-saga-akka/assets/vm-0.5.0-1w-500.png
similarity index 100%
rename from docs/fsm/assets/vm-0.5.0-1w-500.png
rename to docs/spec-saga-akka/assets/vm-0.5.0-1w-500.png
diff --git a/docs/fsm/assets/vm-0.5.0-5w-1000.png b/docs/spec-saga-akka/assets/vm-0.5.0-5w-1000.png
similarity index 100%
rename from docs/fsm/assets/vm-0.5.0-5w-1000.png
rename to docs/spec-saga-akka/assets/vm-0.5.0-5w-1000.png
diff --git a/docs/fsm/assets/vm-0.5.0-5w-2000.png b/docs/spec-saga-akka/assets/vm-0.5.0-5w-2000.png
similarity index 100%
rename from docs/fsm/assets/vm-0.5.0-5w-2000.png
rename to docs/spec-saga-akka/assets/vm-0.5.0-5w-2000.png
diff --git a/docs/fsm/assets/vm-0.5.0-5w-3000.png b/docs/spec-saga-akka/assets/vm-0.5.0-5w-3000.png
similarity index 100%
rename from docs/fsm/assets/vm-0.5.0-5w-3000.png
rename to docs/spec-saga-akka/assets/vm-0.5.0-5w-3000.png
diff --git a/docs/fsm/benchmark_zh.md b/docs/spec-saga-akka/benchmark_zh.md
similarity index 95%
rename from docs/fsm/benchmark_zh.md
rename to docs/spec-saga-akka/benchmark_zh.md
index 256f4c0f..44432d15 100644
--- a/docs/fsm/benchmark_zh.md
+++ b/docs/spec-saga-akka/benchmark_zh.md
@@ -67,13 +67,12 @@ java \
   -Dcom.sun.management.jmxremote.port=9090 \
   -Dcom.sun.management.jmxremote.ssl=false \
   -Dcom.sun.management.jmxremote.authenticate=false \
-  -jar alpha-server-0.5.0-SNAPSHOT-exec.jar \
-  --spring.datasource.username=saga-user \
-  --spring.datasource.password=saga-password \
-  --spring.datasource.url="jdbc:postgresql://10.22.1.234:5432/saga?useSSL=false" \
+  -jar alpha-server-0.7.0-SNAPSHOT-exec.jar \
+  --alpha.spec.names=saga-akka \
+  --alpha.spec.saga.akka.repository.name=elasticsearch \
+  --alpha.spec.saga.akka.repository.elasticsearch.uris=http://127.0.0.1:9200 \
   --spring.profile.active=prd \
-  --alpha.feature.nativetransport=true \
-  --alpha.feature.akka.enabled=true
+  --alpha.feature.nativetransport=true
 ```
 
 ## 测试报告
diff --git a/docs/fsm/design_fsm_zh.md b/docs/spec-saga-akka/design_fsm_zh.md
similarity index 100%
rename from docs/fsm/design_fsm_zh.md
rename to docs/spec-saga-akka/design_fsm_zh.md
diff --git a/docs/spec-saga-akka/eventchannel_zh.md b/docs/spec-saga-akka/eventchannel_zh.md
new file mode 100644
index 00000000..34cdc487
--- /dev/null
+++ b/docs/spec-saga-akka/eventchannel_zh.md
@@ -0,0 +1,56 @@
+# 事件通道
+
+Alpha 收到 Omeag 发送的事件后放入事件通道等待 Akka 处理,事件通道有三种实现方式,一种是内存通道另外是 Kafka,Rabbit 通道
+
+| 通道类型 | 模式 | 说明                                                         |
+| -------- | ---- | ------------------------------------------------------------ |
+| memory   | 单例 | 使用内存作为数据通道,不建议在生产环境使用                   |
+| kafka    | 集群 | 使用 Kafka 作为数据通道,使用全局事务ID作为分区策略,集群中的所有节点同时工作,可水平扩展,当配置了 spring.profiles.active=prd,cluster 参数后默认就使用 kafka 通道 |
+| rabbit    | 集群 | 使用 rabbit 作为数据通道,使用全局事务ID作为分区策略, 由于rabbit 原生不支持分区,所以引用了  [spring-cloud-stream](https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit)  |
+
+ 可以使用参数 `alpha.spec.saga.akka.channel.name` 配置通道类型
+
+- Memory 通道参数
+
+| 参数名                                 | 参数值 | 说明                                        |
+| -------------------------------------- | ------ | ------------------------------------------- |
+| alpha.spec.saga.akka.channel.name       | memory |                                             |
+| alpha.spec.saga.akka.channel.max-length | -1     | momory类型时内存队列大小,-1表示Integer.MAX |
+
+- Kafka 通道参数
+
+| 参数名                                                           | 参数值   | 说明                                        |
+|---------------------------------------------------------------| -------- | ------------------------------------------- |
+| alpha.spec.saga.akka.channel.name                             | kafka    |                                             |
+| alpha.spec.saga.akka.channel.kafka.bootstrap-servers          | -1       | momory类型时内存队列大小,-1表示Integer.MAX |
+| alpha.spec.saga.akka.channel.kafka.producer.batch-size        | 16384    |                                             |
+| alpha.spec.saga.akka.channel.kafka.producer.retries           | 0        |                                             |
+| alpha.spec.saga.akka.channel.kafka.producer.buffer.memory     | 33554432 |                                             |
+| alpha.spec.saga.akka.channel.kafka.consumer.auto.offset.reset | earliest |                                             |
+| alpha.spec.saga.akka.channel.kafka.listener.pollTimeout       | 1500     |                                             |
+| alpha.spec.saga.akka.channel.kafka.numPartitions              | 6        |                                             |
+| alpha.spec.saga.akka.channel.kafka.replicationFactor          | 1        |                                             |
+
+- Rabbit 通道参数
+
+| 参数名                                                                                       | 参数值                        | 说明                           |
+|-------------------------------------------------------------------------------------------|----------------------------|------------------------------|
+| alpha.spec.saga.akka.channel.name                                                         | rabbit                     |                              |
+| spring.cloud.stream.instance-index                                                        | 0                          | 分区索引                         | 
+| spring.cloud.stream.instance-count                                                        | 1                          |                              |
+| spring.cloud.stream.bindings.service-comb-pack-producer.producer.partition-count          | 1                          | 分区数量,分区数量需要与alpha-server保持一致 |
+| spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.virtual-host        | servicecomb-pack           |                              |
+| spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.host                | rabbitmq.servicecomb.io    |                              |
+| spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.username            | servicecomb-pack           |                              |
+| spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.password            | H123213PWD                 |                              |
+| spring.cloud.stream.binders.defaultRabbit.type                                            | rabbit                     |                              |
+| spring.cloud.stream.bindings.service-comb-pack-producer.destination                       | exchange-service-comb-pack |                              |
+| spring.cloud.stream.bindings.service-comb-pack-producer.content-type                      | application/json           |                              |
+| spring.cloud.stream.bindings.service-comb-pack-producer.producer.partition-key-expression | headers['partitionKey']    | 分区表达式                        |  
+| spring.cloud.stream.bindings.service-comb-pack-consumer.group                             | group-pack                 |                              |
+| spring.cloud.stream.bindings.service-comb-pack-consumer.content-type                      | application/json           |                              |
+| spring.cloud.stream.bindings.service-comb-pack-consumer.destination                       | exchange-service-comb-pack |                              |
+| spring.cloud.stream.bindings.service-comb-pack-consumer.consumer.partitioned              | true                       |                              |
+
+                                          
+
diff --git a/docs/fsm/fsm_manual.md b/docs/spec-saga-akka/fsm_manual.md
similarity index 85%
rename from docs/fsm/fsm_manual.md
rename to docs/spec-saga-akka/fsm_manual.md
index da8327cf..3626e034 100755
--- a/docs/fsm/fsm_manual.md
+++ b/docs/spec-saga-akka/fsm_manual.md
@@ -16,7 +16,7 @@ ServiceComb Pack 0.5.0 版本开始我们尝试使用状态机模型解决分布
 
 ## 快速开始
 
-ServiceComb Pack 0.5.0 开始支持 Saga 状态机模式,你只需要在启动 Alpha 和 Omega 端程序时增加 `alpha.feature.akka.enabled=true` 参数。你可以在 [docker hub](https://hub.docker.com/r/coolbeevip/servicecomb-pack) 找到一个 docker-compose 文件,也可以按照以下方式部署。
+ServiceComb Pack 0.5.0 开始支持 Saga 状态机模式,你只需要在启动 Alpha 时增加 `alpha.spec.names=saga-akka` 参数 和 Omega 端程序时增加 `omega.spce.names=saga` 参数。你可以在 [docker hub](https://hub.docker.com/r/coolbeevip/servicecomb-pack) 找到一个 docker-compose 文件,也可以按照以下方式部署。
 
 **注意:** 启用状态机模式后,Saga事务会工作在状态机模式,TCC依然采用数据库方式
 **注意:** 0.6.0+ 版本 Omega 端程序不需要配置 `alpha.feature.akka.enabled=true` 参数
@@ -30,7 +30,7 @@ ServiceComb Pack 0.5.0 开始支持 Saga 状态机模式,你只需要在启动
 * 启动 Elasticsearch
 
   ```bash
-  docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.1
+  docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.1
   ```
 
 * 启动 Alpha
@@ -40,9 +40,10 @@ ServiceComb Pack 0.5.0 开始支持 Saga 状态机模式,你只需要在启动
     --spring.datasource.url=jdbc:postgresql://0.0.0.0:5432/saga?useSSL=false \
     --spring.datasource.username=saga \
     --spring.datasource.password=password \
-    --alpha.feature.akka.enabled=true \
-    --alpha.feature.akka.transaction.repository.type=elasticsearch \
-    --spring.elasticsearch.rest.uris=http://127.0.0.1:9200 \
+    --alpha.spec.names=saga-akka \
+    --alpha.spec.saga.akka.channel.name=memory \
+    --alpha.spec.saga.akka.repository.name=elasticsearch \
+    --alpha.spec.saga.akka.repository.elasticsearch.uris=http://127.0.0.1:9200 \
     --spring.profiles.active=prd  
   ```
 
@@ -95,7 +96,7 @@ ServiceComb Pack 0.5.0 开始支持 Saga 状态机模式,你只需要在启动
 
 * System Info
 
-   显示了当前 Alpha 服务的系统,JVM,线程等信息
+  显示了当前 Alpha 服务的系统,JVM,线程等信息
 
 **注意:**Active Transactions 中的指标值重启后自动归零
 
@@ -145,7 +146,7 @@ Sub Transactions 面板:本事务包含的子事务ID,子事务状态,子
 
 ![image-20190927150455006](assets/alpha-cluster-architecture.png)
 
-上边是 Alpha 集群的工作架构图,表示部署了两个 Alpha 节点,分别是 8070 和 8071(这两编号是 [Gossip](https://en.wikipedia.org/wiki/Gossip_protocol) 协议的通信端口)。Omega 消息被发送到 Kafka ,并使用 globalTxId 作为分区策略,这保证了同一个全局事务下的子事务可以被有序的消费。KafkaConsumer 负责从 Kafak 中读取事件并发送给集群分片器 ShardingCoordinator,ShardingCoordinator 负责在 Alpha 集群中创建 SagaActor 并发送这个消息。运行中的 SagaActor 接收到消息后会持久化到 Redis 中,当这个集群中的节点奔溃后可以在集群其他节点恢复 SagaActor 以及它的状态。当 SagaActor 结束后就会将这一笔全局事务的数据存储到 ES。
+上边是 Alpha 集群的工作架构图,表示部署了两个 Alpha 节点,分别是 8070 和 8071(这两编号是 [Gossip](https://en.wikipedia.org/wiki/Gossip_protocol) 协议的通信端口)。Omega 消息被发送到 Kafka ,并使用 globalTxId 作为分区策略,这保证了同一个全局事务下的子事务可以被有序的消费。KafkaConsumer 负责从 Kafka 中读取事件并发送给集群分片器 ShardingCoordinator,ShardingCoordinator 负责在 Alpha 集群中创建 SagaActor 并发送这个消息。运行中的 SagaActor 接收到消息后会持久化到 Redis 中,当这个集群中的节点奔溃后可以在集群其他节点恢复 SagaActor 以及它的状态。当 SagaActor 结束后就会将这一笔全局事务的数据存储到 ES。
 
 启动 Alpha 集群非常容易,首先启动集群需要用到的中间件 Kafka Redis PostgreSQL/MySQL ElasticSearch,你使用 Docker 启动他们(在生产环境建议使用一个更可靠的部署方式),下边提供了一个 docker compose 文件 servicecomb-pack-middleware.yml,你可以直接使用命令 `docker-compose -f servicecomb-pack-middleware.yml up -d` 启动它。
 
@@ -215,14 +216,14 @@ services:
 * 端口规划
 
   | 节点    | gRPC 端口 | REST 端口 | Gossip 端口 |
-  | ------- | --------- | --------- | ----------- |
+    | ------- | --------- | --------- | ----------- |
   | Alpha 1 | 8080      | 8090      | 8070        |
   | Alpha 2 | 8081      | 8091      | 8071        |
 
 * 集群参数
 
   | 参数名                                           | 说明                                                         |
-  | ------------------------------------------------ | ------------------------------------------------------------ |
+    | ------------------------------------------------ | ------------------------------------------------------------ |
   | server.port                                      | REST 端口,默认值 8090                                       |
   | alpha.server.port                                | gRPC 端口,默认值 8080                                       |
   | akkaConfig.akka.remote.artery.canonical.port     | Gossip 端口,默认值 8070                                     |
@@ -236,16 +237,15 @@ services:
 * 启动 Alpha 1
 
   ```bash
-  java -jar alpha-server-0.6.0-SNAPSHOT-exec.jar \
+  java -jar alpha-server-0.7.0-SNAPSHOT-exec.jar \
     --server.port=8090 \
     --server.host=127.0.0.1 \
     --alpha.server.port=8080 \
-    --alpha.feature.akka.enabled=true \
-    --spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/saga?useSSL=false \
-    --spring.datasource.username=saga \
-    --spring.datasource.password=password \
-    --spring.kafka.bootstrap-servers=127.0.0.1:9092 \
-    --spring.elasticsearch.rest.uris=http://127.0.0.1:9200 \
+    --alpha.spec.names=saga-akka \
+    --alpha.spec.saga.akka.repository.name=elasticsearch \
+    --alpha.spec.saga.akka.repository.elasticsearch.uris=http://127.0.0.1:9200 \
+    --alpha.spec.saga.akka.channel.name=kafka \
+    --alpha.spec.saga.akka.channel.kafka.bootstrap-servers=127.0.0.1:9092 \
     --akkaConfig.akka.remote.artery.canonical.port=8070 \
     --akkaConfig.akka.cluster.seed-nodes[0]="akka://alpha-cluster@127.0.0.1:8070" \
     --akkaConfig.akka-persistence-redis.redis.host=127.0.0.1 \
@@ -256,16 +256,15 @@ services:
 * 启动 Alpha 2
 
   ```bash
-  java -jar alpha-server-0.6.0-SNAPSHOT-exec.jar \
+  java -jar alpha-server-0.7.0-SNAPSHOT-exec.jar \
     --server.port=8091 \
     --server.host=127.0.0.1 \
     --alpha.server.port=8081 \
-    --alpha.feature.akka.enabled=true \
-    --spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/saga?useSSL=false \
-    --spring.datasource.username=saga \
-    --spring.datasource.password=password \
-    --spring.kafka.bootstrap-servers=127.0.0.1:9092 \
-    --spring.elasticsearch.rest.uris=http://127.0.0.1:9200 \
+    --alpha.spec.names=saga-akka \
+    --alpha.spec.saga.akka.repository.name=elasticsearch \
+    --alpha.spec.saga.akka.repository.elasticsearch.uris=http://127.0.0.1:9200 \
+    --alpha.spec.saga.akka.channel.name=kafka \
+    --alpha.spec.saga.akka.channel.kafka.bootstrap-servers=127.0.0.1:9092 \
     --akkaConfig.akka.remote.artery.canonical.port=8071 \
     --akkaConfig.akka.cluster.seed-nodes[0]="akka://alpha-cluster@127.0.0.1:8070" \
     --akkaConfig.akka-persistence-redis.redis.host=127.0.0.1 \
@@ -275,14 +274,14 @@ services:
 
 ## 动态扩容
 
-- Alpha 支持通过动态增加节点的的方式实现在线处理能力扩容
-- Alpha 默认创建的 Kafka Topic 分区数量是 6,也就是说 Alpha 集群节点大于6个时将不能再提升处理性能,你可以根据规划在初次启动的时候使用  `kafka.numPartitions` 参数修改自动创建的 Topic 分区数
+* Alpha 支持通过动态增加节点的的方式实现在线处理能力扩容
+* Alpha 默认创建的 Kafka Topic 分区数量是 6,也就是说 Alpha 集群节点大于6个时将不能再提升处理性能,你可以根据规划在初次启动的时候使用  `kafka.numPartitions` 参数修改自动创建的 Topic 分区数
 
 ## 附件
 
 [事件通道](eventchannel_zh.md)
 
-[持久化](persistence_zh.md)
+[事务数据持久化](persistence_zh.md)
 
 [Akka 配置](akka_zh.md)
 
diff --git a/docs/fsm/fsm_manual_zh.md b/docs/spec-saga-akka/fsm_manual_zh.md
similarity index 90%
rename from docs/fsm/fsm_manual_zh.md
rename to docs/spec-saga-akka/fsm_manual_zh.md
index 31a03670..2a4323d2 100755
--- a/docs/fsm/fsm_manual_zh.md
+++ b/docs/spec-saga-akka/fsm_manual_zh.md
@@ -16,7 +16,7 @@ ServiceComb Pack 0.5.0 版本开始我们尝试使用状态机模型解决分布
 
 ## 快速开始
 
-ServiceComb Pack 0.5.0 开始支持 Saga 状态机模式,你只需要在启动 Alpha 和 Omega 端程序时增加 `alpha.feature.akka.enabled=true` 参数。你可以在 [docker hub](https://hub.docker.com/r/coolbeevip/servicecomb-pack) 找到一个 docker-compose 文件,也可以按照以下方式部署。
+ServiceComb Pack 0.5.0 开始支持 Saga 状态机模式,你只需要在启动 Alpha 时增加 `alpha.spec.names=saga-akka` 参数 和 Omega 端程序时增加 `omega.spce.names=saga` 参数。你可以在 [docker hub](https://hub.docker.com/r/coolbeevip/servicecomb-pack) 找到一个 docker-compose 文件,也可以按照以下方式部署。
 
 **注意:** 启用状态机模式后,Saga事务会工作在状态机模式,TCC依然采用数据库方式
 **注意:** 0.6.0+ 版本 Omega 端程序不需要配置 `alpha.feature.akka.enabled=true` 参数
@@ -40,9 +40,10 @@ ServiceComb Pack 0.5.0 开始支持 Saga 状态机模式,你只需要在启动
     --spring.datasource.url=jdbc:postgresql://0.0.0.0:5432/saga?useSSL=false \
     --spring.datasource.username=saga \
     --spring.datasource.password=password \
-    --alpha.feature.akka.enabled=true \
-    --alpha.feature.akka.transaction.repository.type=elasticsearch \
-    --spring.elasticsearch.rest.uris=http://127.0.0.1:9200 \
+    --alpha.spec.names=saga-akka \
+    --alpha.spec.saga.akka.channel.name=memory \
+    --alpha.spec.saga.akka.repository.name=elasticsearch \
+    --alpha.spec.saga.akka.repository.elasticsearch.uris=http://127.0.0.1:9200 \
     --spring.profiles.active=prd  
   ```
 
@@ -236,16 +237,15 @@ services:
 * 启动 Alpha 1
 
   ```bash
-  java -jar alpha-server-0.6.0-SNAPSHOT-exec.jar \
+  java -jar alpha-server-0.7.0-SNAPSHOT-exec.jar \
     --server.port=8090 \
     --server.host=127.0.0.1 \
     --alpha.server.port=8080 \
-    --alpha.feature.akka.enabled=true \
-    --spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/saga?useSSL=false \
-    --spring.datasource.username=saga \
-    --spring.datasource.password=password \
-    --spring.kafka.bootstrap-servers=127.0.0.1:9092 \
-    --spring.elasticsearch.rest.uris=http://127.0.0.1:9200 \
+    --alpha.spec.names=saga-akka \
+    --alpha.spec.saga.akka.repository.name=elasticsearch \
+    --alpha.spec.saga.akka.repository.elasticsearch.uris=http://127.0.0.1:9200 \
+    --alpha.spec.saga.akka.channel.name=kafka \
+    --alpha.spec.saga.akka.channel.kafka.bootstrap-servers=127.0.0.1:9092 \
     --akkaConfig.akka.remote.artery.canonical.port=8070 \
     --akkaConfig.akka.cluster.seed-nodes[0]="akka://alpha-cluster@127.0.0.1:8070" \
     --akkaConfig.akka-persistence-redis.redis.host=127.0.0.1 \
@@ -256,16 +256,15 @@ services:
 * 启动 Alpha 2
 
   ```bash
-  java -jar alpha-server-0.6.0-SNAPSHOT-exec.jar \
+  java -jar alpha-server-0.7.0-SNAPSHOT-exec.jar \
     --server.port=8091 \
     --server.host=127.0.0.1 \
     --alpha.server.port=8081 \
-    --alpha.feature.akka.enabled=true \
-    --spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/saga?useSSL=false \
-    --spring.datasource.username=saga \
-    --spring.datasource.password=password \
-    --spring.kafka.bootstrap-servers=127.0.0.1:9092 \
-    --spring.elasticsearch.rest.uris=http://127.0.0.1:9200 \
+    --alpha.spec.names=saga-akka \
+    --alpha.spec.saga.akka.repository.name=elasticsearch \
+    --alpha.spec.saga.akka.repository.elasticsearch.uris=http://127.0.0.1:9200 \
+    --alpha.spec.saga.akka.channel.name=kafka \
+    --alpha.spec.saga.akka.channel.kafka.bootstrap-servers=127.0.0.1:9092 \
     --akkaConfig.akka.remote.artery.canonical.port=8071 \
     --akkaConfig.akka.cluster.seed-nodes[0]="akka://alpha-cluster@127.0.0.1:8070" \
     --akkaConfig.akka-persistence-redis.redis.host=127.0.0.1 \
diff --git a/docs/fsm/persistence_zh.md b/docs/spec-saga-akka/persistence_zh.md
similarity index 90%
rename from docs/fsm/persistence_zh.md
rename to docs/spec-saga-akka/persistence_zh.md
index c49eed96..225fb20c 100644
--- a/docs/fsm/persistence_zh.md
+++ b/docs/spec-saga-akka/persistence_zh.md
@@ -15,12 +15,12 @@
 
 ### 持久化参数
 
-| 参数名                                                       | 默认值 | 说明                                       |
-| ------------------------------------------------------------ | ------ |------------------------------------------|
-| alpha.feature.akka.transaction.repository.type               |        | 持久化类型,目前可选值 elasticsearch,如果不设置则不存储      |
-| alpha.feature.akka.transaction.repository.elasticsearch.batchSize | 100    | elasticsearch 批量入库数量                     |
-| alpha.feature.akka.transaction.repository.elasticsearch.refreshTime | 5000   | elasticsearch 定时同步到ES时间                  |
-| spring.elasticsearch.rest.uris                      |        | ES节点地址,格式:http://localhost:9200,多个地址逗号分隔 |
+| 参数名                                                         | 默认值 | 说明                      |
+|---------------------------------------------------------------|-------|-------------------------|
+| alpha.spec.saga.akka.repository.name                          |       | 持久化类型,目前可选值 elasticsearch,如果不设置则不存储 |
+| alpha.spec.saga.akka.repository.elasticsearch.batch-size      | 100   | elasticsearch 批量入库数量    |
+| alpha.spec.saga.akka.repository.elasticsearch.refresh-time    | 5000  | elasticsearch 定时同步到ES时间 |
+| alpha.spec.saga.akka.repository.elasticsearch.uris            |       | ES节点地址,格式:http://localhost:9200,多个地址逗号分隔 |
 
 ### Elasticsearch 索引
 
diff --git a/docs/fsm/plantuml/saga-state-diagram.puml b/docs/spec-saga-akka/plantuml/saga-state-diagram.puml
similarity index 100%
rename from docs/fsm/plantuml/saga-state-diagram.puml
rename to docs/spec-saga-akka/plantuml/saga-state-diagram.puml
diff --git a/docs/user_guide.md b/docs/user_guide.md
index bfca281f..f7b2f9b4 100644
--- a/docs/user_guide.md
+++ b/docs/user_guide.md
@@ -106,11 +106,19 @@ Take a transfer money application as an example:
      cluster:
        address: alpha-server.servicecomb.io:8080
    ```
+4. Add omega.spec.names parameters
 
-4. Repeat step 2 for the `transferIn` service.
+   ```yaml
+   omega:
+     spec:
+       names: saga
+   ```
+   
+5. Repeat step 2 for the `transferIn` service.
 
-5. Since pack-0.3.0,  you can access the [OmegaContext](https://github.com/apache/servicecomb-pack/blob/master/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java) for the gloableTxId and localTxId in the @Compensable annotated method or the cancel method.
+6. Since pack-0.3.0,  you can access the [OmegaContext](https://github.com/apache/servicecomb-pack/blob/master/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java) for the gloableTxId and localTxId in the @Compensable annotated method or the cancel method.
 
+7. Sinc pack-0.7.0, You can change the distributed transaction specification through the alpha.spec.names parameter, currently supported modes are saga-db (default), tcc-db, saga-akka
 #### <a name="explicit-tx-context-passing"></a>Passing transaction context explicitly
 
 In most cases, Omega passing the transaction context for you transparently (see [Inter-Service Communication](design.md#comm) for details). Transaction context passing is implemented in a way of injecting transaction context information on the sender side and extracting it on the receiver side. Below is an example to illustrate this process:
@@ -286,8 +294,15 @@ Add TCC annotations and corresponding confirm and cancel methods
       cluster:
         address: alpha-server.servicecomb.io:8080
     ```
+ 4. Add omega.spec.names parameters
 
- 4. Repeat step 2 for the `transferIn` service.
+   ```yaml
+   omega:
+     spec:
+       names: tcc
+   ```
+   
+ 5. Repeat step 2 for the `transferIn` service.
 
 #### Passing transaction context explicitly
 
@@ -323,6 +338,9 @@ Just like Saga's `@Compensable`,`@Participate` also supports explicit transact
    alpha:
      cluster:
        address: {alpha.cluster.addresses}
+   omega:
+     spec:
+       names: saga   
    ```
 
 Then you can start your micro-services and access all saga events via http://${alpha-server:port}/saga/events.
@@ -821,9 +839,9 @@ Alpha can be highly available by deploying multiple instances, enable cluster su
 
 Alpha enabled JNI transports support with `alpha.feature.nativetransport=true`, These JNI transports add features specific to a particular platform, generate less garbage, and generally improve performance when compared to the NIO based transport.
 
-## Experiment
+## Pack Distributed Transaction Specifications
 
-[State Machine Mode](fsm/fsm_manual.md)
+[Saga-Akka Specifications](spec-saga-akka/fsm_manual.md)
 
 ## Upgrade Guide
 
diff --git a/docs/user_guide_zh.md b/docs/user_guide_zh.md
index a8265dfe..61e8ae02 100644
--- a/docs/user_guide_zh.md
+++ b/docs/user_guide_zh.md
@@ -106,10 +106,19 @@ Saga可通过以下任一方式进行构建:
      cluster:
        address: alpha-server.servicecomb.io:8080
    ```
+4. 增加 omega.spec.names 参数
 
-4. 对转入服务重复第二步即可。
+   ```yaml
+   omega:
+     spec:
+       names: saga
+   ```
+   
+5. 对转入服务重复第二步即可。
+
+6. 从 pack-0.3.0 开始, 你可以在服务函数或者取消函数中通过访问 [OmegaContext](https://github.com/apache/servicecomb-pack/blob/master/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java) 来获取 gloableTxId 以及 localTxId 信息。
 
-5. 从pack-0.3.0开始, 你可以在服务函数或者取消函数中通过访问 [OmegaContext](https://github.com/apache/servicecomb-pack/blob/master/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java) 来获取 gloableTxId 以及 localTxId 信息。
+7. 从 pack-0.7.0 开始, 你可以通过 alpha.spec.names 参数改变分布式事务规格, 目前支持的模式有 saga-db(默认), tcc-db, saga-akka
 
 #### <a name="explicit-tx-context-passing"></a>显式传递事务上下文
 
@@ -285,9 +294,17 @@ public void bar() {
         address: alpha-server.servicecomb.io:8080
     ```
 
-4. 对转入服务重复第二步即可。
+4. 增加 omega.spec.names 参数
+
+   ```yaml
+   omega:
+     spec:
+       names: tcc
+   ```
+   
+5. 对转入服务重复第二步即可。
 
-5. 从pack-0.3.0开始, 你可以在服务函数或者取消函数中通过访问 [OmegaContext](https://github.com/apache/servicecomb-pack/blob/master/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java) 来获取 gloableTxId 以及 localTxId 信息。
+6. 从pack-0.3.0开始, 你可以在服务函数或者取消函数中通过访问 [OmegaContext](https://github.com/apache/servicecomb-pack/blob/master/omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/OmegaContext.java) 来获取 gloableTxId 以及 localTxId 信息。
 
 #### 显式传递事务上下文
 
@@ -326,6 +343,9 @@ public void bar() {
    alpha:
      cluster:
        address: {alpha.cluster.addresses}
+   omega:
+     spec:
+       names: saga
    ```
 
 然后就可以运行相关的微服务了,可通过访问http://${alpha-server:port}/saga/events 来获取所有的saga事件信息。
@@ -808,9 +828,9 @@ Alpha 使用 `alpha.feature.nativetransport=true` 开启JNI调用Socket Transpor
 [src-TransactionClientHttpRequestInterceptor]: ../omega/omega-transport/omega-transport-resttemplate/src/main/java/org/apache/servicecomb/pack/omega/transport/resttemplate/TransactionClientHttpRequestInterceptor.java
 [src-TransactionHandlerInterceptor]: ../omega/omega-transport/omega-transport-resttemplate/src/main/java/org/apache/servicecomb/pack/omega/transport/resttemplate/TransactionHandlerInterceptor.java
 
-## 实验
+## Pack 分布式事务规则
 
-[状态机模式](fsm/fsm_manual_zh.md)
+[Saga-Akka 分布式状态机规格](spec-saga-akka/fsm_manual_zh.md)
 
 ## 升级指南