You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2019/07/12 01:05:30 UTC

[servicecomb-pack] branch master updated (6c8d109 -> ecdfe12)

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

ningjiang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git.


    from 6c8d109  add NACOS to DiscoveryType
     new b0f5164  SCB-1321 Add Alpha FSM design document
     new 5b4bf79  SCB-1321 Add Alpha FSM prototype code
     new 38be0e7  SCB-1321 Add state machine uml file
     new add232a  SCB-1321 Sub-transaction support concurrent
     new 490579e  SCB-1321 Add alpha-fsm README.md
     new 0770e66  SCB-1321 Add license header
     new 0407692  SCB-1321 Add Saga Event Message Bus
     new 9cedf94  SCB-1321 Support for defining Akka properties in application.yaml
     new bc37ab7  SCB-1321 Support Akka Persistent Redis Recovery
     new 550b27f  SCB-1321 Add SagaActor call compensate
     new 1540c0f  SCB-1321 Add GrpcSagaEventService for SagaActor Events
     new fca0a8b  SCB-1321 Improve test cases for AlphaIntegrationFsmTest
     new 8002a9d  SCB-1321 Add test case duplicateTxOnFailureEvents
     new ad010b3  SCB-1321 Set endTime of SagaData after actor terminates
     new 2995c63  SCB-1321 Record throwable stack to SagaData
     new f3acf35  SCB-1321 await wait 2 seconds
     new 20742ee  SCB-1321 default use mem persistence for test cases
     new b6dc6b2  SCB-1321 Delete test case successfulRecoveryWithCorrectStateDataTestAndDiffentSystem
     new 825d2de  SCB-1321 Add test case receivedRemainingEventAndDelayLastTxEventAfterFirstTxAbortedEventTest
     new 0eaacbd  SCB-1321 Does not use BlockingQueue when actor model calling compensation
     new 00adeee  SCB-1321 Add test case for actor compensation retry
     new 7e3c03e  SCB-1321 Modify SagaIntegrationTest await time to 10 seconds
     new d5ea94f  SCB-1321 Akka configuration moved from application.yaml to SagaIntegrationTest
     new 44763d5  SCB-1321 Fix test case sometimes throws an interrupt exception with CI
     new 789c2d7  SCB-1321 Car service add exception rules for test
     new b96101d  SCB-1321 SagaActor Refactoring
     new 6a400b8  SCB-1321 Rename akka enabled parameter alpha.model.actor.enabled to alpha.feature.akka.enabled
     new dfa6e4e  SCB-1321 Add message receiving service for the state machine
     new 04ffce2  SCB-1321 Add Akka persistence default parameters
     new fcd6b18  SCB-1321 Add Akka support parameters in OmegaContext
     new e2f8331  SCB-1321 Refactoring interrupt Omega timeout thread
     new cb04db9  SCB-1321 Add acceptance-pack-akka-spring
     new 9113a8d  SCB-1321 Disable integration-tests module
     new 5e86fd3  SCB-1321 Update README.md for Saga State Machine Module
     new a55b1d1  SCB-1321 Update README.md for Saga State Machine Module
     new 141955c  SCB-1321 Update README.md for Saga State Machine Module
     new fe706dc  SCB-1321 Add alpha benchmark tools
     new e46d267  SCB-1321 Add benchmark report
     new e0b8feb  SCB-1321 Update WIP for alpha-fsm
     new 9e2487b  SCB-1321 Update document format
     new fdf8574  SCB-1321 Update document format
     new 4c14bba  SCB-1321 Modify SagaActor log level to DEBUG
     new f1b7cec  SCB-1321 Delete unused methods
     new ac799a1  SCB-1321 Delete unused methods
     new 7f07524  SCB-1321 Remove Actor replying methods
     new 527b9a0  SCB-1321 Optimize termination of SagaData cache for stress test
     new ed72179  SCB-1321 Optimize Benchmark JVM Parameters
     new bd0910d  SCB-1321 Modify RESTful API /saga/events to /saga/events/last
     new b80f98b  SCB-1321 Modify Scenario Name
     new 5c9b52f  SCB-1321 Remove EventBus between gRPC and Akka
     new db36ce4  SCB-1321 Ignore onDisconnected error
     new 43e24af  SCB-1321 Rename RESTful /saga to /saga/akka for acceptance tests
     new 9e2710e  SCB-1321 Optimize alpha throughput
     new ecdfe12  SCB-1321 Recovery integration-tests module

The 54 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../pom.xml                                        |   8 +-
 .../org/apache/servicecomb/pack/PackStepdefs.java  |   4 +-
 .../org/apache/servicecomb/pack/RunCucumberIT.java |   0
 .../booking_exception_after_post_car.btm}          |   0
 .../booking_exception_after_post_hotel.btm}        |   2 +-
 .../src/test/resources/booking_timeout.btm         |   0
 .../src/test/resources/log4j2-test.xml             |   0
 ...on_after_post_car_compensated_scenario.feature} |   7 +-
 ..._after_post_hotel_compensated_scenario.feature} |  18 +-
 ...ack_booking_timeout_suspended_scenario.feature} |  10 +-
 .../pack_car_fail_compensated_scenario.feature}    |  15 +-
 .../pack_hotel_fail_compensated_scenario.feature}  |   5 +-
 .../test/resources/pack_success_scenario.feature   |   2 +-
 acceptance-tests/pom.xml                           |   1 +
 .../alpha-benchmark}/pom.xml                       |  50 +-
 .../pack/alpha/benchmark/Application.java          | 101 +++
 .../pack/alpha/benchmark/BenchmarkMetrics.java     | 102 +++
 .../pack/alpha/benchmark/SagaEventBenchmark.java   | 170 ++++
 .../src/main/resources/application.yaml            |  10 +-
 .../pack/alpha/core/PushBackOmegaCallback.java     |  15 +-
 .../pack/alpha/core/fsm/PackSagaEvent.java         | 150 ++++
 alpha/alpha-fsm/Benchmark.md                       | 195 +++++
 alpha/alpha-fsm/README.md                          |  74 ++
 alpha/alpha-fsm/assets/cmd-0.4.0-1w-100.png        | Bin 0 -> 153094 bytes
 alpha/alpha-fsm/assets/cmd-0.4.0-1w-500.png        | Bin 0 -> 154756 bytes
 alpha/alpha-fsm/assets/cmd-0.5.0-1w-100.png        | Bin 0 -> 151211 bytes
 alpha/alpha-fsm/assets/cmd-0.5.0-1w-1000.png       | Bin 0 -> 152949 bytes
 alpha/alpha-fsm/assets/cmd-0.5.0-1w-2000.png       | Bin 0 -> 156713 bytes
 alpha/alpha-fsm/assets/cmd-0.5.0-1w-500.png        | Bin 0 -> 151538 bytes
 alpha/alpha-fsm/assets/cmd-0.5.0-5w-1000.png       | Bin 0 -> 150555 bytes
 alpha/alpha-fsm/assets/cmd-0.5.0-5w-2000.png       | Bin 0 -> 157909 bytes
 alpha/alpha-fsm/assets/cmd-0.5.0-5w-3000.png       | Bin 0 -> 162355 bytes
 alpha/alpha-fsm/assets/vm-0.4.0-1w-100.png         | Bin 0 -> 82508 bytes
 alpha/alpha-fsm/assets/vm-0.4.0-1w-500.png         | Bin 0 -> 91880 bytes
 alpha/alpha-fsm/assets/vm-0.5.0-1w-100.png         | Bin 0 -> 89345 bytes
 alpha/alpha-fsm/assets/vm-0.5.0-1w-1000.png        | Bin 0 -> 84643 bytes
 alpha/alpha-fsm/assets/vm-0.5.0-1w-2000.png        | Bin 0 -> 84967 bytes
 alpha/alpha-fsm/assets/vm-0.5.0-1w-500.png         | Bin 0 -> 78440 bytes
 alpha/alpha-fsm/assets/vm-0.5.0-5w-1000.png        | Bin 0 -> 92723 bytes
 alpha/alpha-fsm/assets/vm-0.5.0-5w-2000.png        | Bin 0 -> 86282 bytes
 alpha/alpha-fsm/assets/vm-0.5.0-5w-3000.png        | Bin 0 -> 90599 bytes
 {omega/omega-spring-tx => alpha/alpha-fsm}/pom.xml | 127 ++-
 .../pack/alpha/fsm/FsmAutoConfiguration.java       |  98 +++
 .../servicecomb/pack/alpha/fsm/SagaActor.java      | 521 +++++++++++
 .../servicecomb/pack/alpha/fsm/SagaActorState.java |  19 +-
 .../servicecomb/pack/alpha/fsm/TxState.java}       |  12 +-
 .../fsm/channel/ActiveMQActorEventChannel.java     |  38 +-
 .../pack/alpha/fsm/channel/ActorEventChannel.java  |   9 +-
 .../alpha/fsm/channel/KafkaActorEventChannel.java  |  36 +-
 .../alpha/fsm/channel/MemoryActorEventChannel.java |  70 ++
 .../alpha/fsm/channel/RedisActorEventChannel.java  |  38 +-
 .../pack/alpha/fsm/domain/AddTxEventDomain.java    |  70 ++
 .../pack/alpha/fsm/domain/DomainEvent.java         |   8 +-
 .../pack/alpha/fsm/domain/SagaEndedDomain.java     |  38 +-
 .../pack/alpha/fsm/domain/SagaStartedDomain.java   |  34 +-
 .../pack/alpha/fsm/domain/UpdateTxEventDomain.java |  92 ++
 .../pack/alpha/fsm/event/SagaAbortedEvent.java     |  61 ++
 .../pack/alpha/fsm/event/SagaEndedEvent.java       |  63 ++
 .../pack/alpha/fsm/event/SagaStartedEvent.java     |  84 ++
 .../pack/alpha/fsm/event/SagaTimeoutEvent.java     |  60 ++
 .../pack/alpha/fsm/event/TxAbortedEvent.java       |  81 ++
 .../pack/alpha/fsm/event/TxCompensatedEvent.java   |  66 ++
 .../fsm/event/TxComponsitedCheckInternalEvent.java |  36 +-
 .../pack/alpha/fsm/event/TxEndedEvent.java         |  67 ++
 .../pack/alpha/fsm/event/TxStartedEvent.java       | 122 +++
 .../pack/alpha/fsm/event/base/BaseEvent.java}      |  92 +-
 .../pack/alpha/fsm/event/base/SagaEvent.java       |   7 +-
 .../pack/alpha/fsm/event/base/TxEvent.java         |   6 +-
 .../servicecomb/pack/alpha/fsm/model/SagaData.java | 216 +++++
 .../servicecomb/pack/alpha/fsm/model/TxEntity.java | 215 +++++
 .../pack/alpha/fsm/sink/ActorEventSink.java        |   8 +-
 .../pack/alpha/fsm/sink/SagaActorEventSender.java  |  68 ++
 .../akka/AkkaConfigPropertyAdapter.java            |  68 ++
 .../spring/integration/akka/SagaDataExtension.java | 111 +++
 .../integration/akka/SpringAkkaExtension.java      |  76 ++
 .../eventbus/EventSubscribeBeanPostProcessor.java  |  62 ++
 .../src/main/resources/META-INF/spring.factories   |   2 +-
 .../servicecomb/pack/alpha/fsm/SagaActorTest.java  | 971 +++++++++++++++++++++
 .../pack/alpha/fsm/SagaApplication.java            |   8 +-
 .../pack/alpha/fsm/SagaEventSender.java            | 355 ++++++++
 .../pack/alpha/fsm/SagaIntegrationTest.java        | 320 +++++++
 .../alpha-fsm/src/test/resources/log4j2.xml        |   0
 alpha/alpha-server/pom.xml                         |  16 +
 .../servicecomb/pack/alpha/server/AlphaConfig.java |  22 +
 .../pack/alpha/server/AlphaEventController.java    |   1 +
 .../FsmSagaDataController.java}                    |  51 +-
 .../alpha/server/{ => fsm}/GrpcOmegaCallback.java  |  11 +-
 .../alpha/server/fsm/GrpcSagaEventService.java     | 150 ++++
 .../src/main/resources/application.yaml            |  26 +
 .../alpha/server/fsm/AlphaIntegrationFsmTest.java  | 479 ++++++++++
 .../alpha/server/fsm/OmegaEventSagaSimulator.java  | 294 +++++++
 .../pack/alpha/server/fsm/OmegaEventSender.java    | 163 ++++
 .../alpha-server/src/test/resources/log4j2.xml     |   0
 alpha/pom.xml                                      |   2 +
 .../pack/demo/booking/BookingController.java       |   6 +-
 .../pack/demo/car/CarBookingService.java           |   3 +
 docs/fsm/assets/fsm.png                            | Bin 0 -> 296145 bytes
 docs/fsm/assets/saga_state_diagram.png             | Bin 0 -> 244645 bytes
 docs/fsm/assets/state_table.png                    | Bin 0 -> 311887 bytes
 docs/fsm/design_fsm_zh.md                          | 182 ++++
 docs/fsm/plantuml/saga-state-diagram.puml          |  52 ++
 .../pack/omega/context/OmegaContext.java           |  12 +
 .../pack/omega/spring/OmegaSpringConfig.java       |   6 +-
 .../omega/transaction/AbstractRecoveryPolicy.java  |   5 +-
 .../omega/transaction/CompensableInterceptor.java  |   2 +-
 .../transaction/RecoveryPolicyTimeoutWrapper.java  | 226 -----
 .../{TxAbortedEvent.java => SagaAbortedEvent.java} |   9 +-
 .../transaction/SagaStartAnnotationProcessor.java  |  22 +-
 .../pack/omega/transaction/SagaStartAspect.java    |  35 +-
 .../wrapper/RecoveryPolicyTimeoutWrapper.java      | 222 +++++
 ...SagaStartAnnotationProcessorTimeoutWrapper.java | 107 +++
 .../SagaStartAnnotationProcessorWrapper.java}      |  32 +-
 .../omega/transaction/wrapper/TimeoutProb.java     |  92 ++
 .../transaction/wrapper/TimeoutProbManager.java    | 100 +++
 .../omega/transaction/ForwardRecoveryTest.java     |   6 +-
 .../omega/transaction/SagaStartAspectTest.java     |  44 +-
 .../apache/servicecomb/pack/common/EventType.java  |   5 +-
 pom.xml                                            |   5 +
 118 files changed, 7107 insertions(+), 655 deletions(-)
 copy acceptance-tests/{acceptance-pack-spring-demo => acceptance-pack-akka-spring-demo}/pom.xml (96%)
 copy acceptance-tests/{acceptance-pack-spring-demo-with-consul => acceptance-pack-akka-spring-demo}/src/test/java/org/apache/servicecomb/pack/PackStepdefs.java (99%)
 copy acceptance-tests/{acceptance-pack-tcc-spring-demo => acceptance-pack-akka-spring-demo}/src/test/java/org/apache/servicecomb/pack/RunCucumberIT.java (100%)
 copy acceptance-tests/{acceptance-pack-spring-demo/src/test/resources/booking_exception.btm => acceptance-pack-akka-spring-demo/src/test/resources/booking_exception_after_post_car.btm} (100%)
 copy acceptance-tests/{acceptance-pack-spring-demo-with-consul/src/test/resources/booking_exception.btm => acceptance-pack-akka-spring-demo/src/test/resources/booking_exception_after_post_hotel.btm} (98%)
 copy acceptance-tests/{acceptance-pack-spring-demo => acceptance-pack-akka-spring-demo}/src/test/resources/booking_timeout.btm (100%)
 copy {omega/omega-transaction => acceptance-tests/acceptance-pack-akka-spring-demo}/src/test/resources/log4j2-test.xml (100%)
 copy acceptance-tests/{acceptance-pack-spring-demo-with-consul/src/test/resources/pack_post_car_exception_scenario.feature => acceptance-pack-akka-spring-demo/src/test/resources/pack_booking_exception_after_post_car_compensated_scenario.feature} (86%)
 copy acceptance-tests/{acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature => acceptance-pack-akka-spring-demo/src/test/resources/pack_booking_exception_after_post_hotel_compensated_scenario.feature} (81%)
 copy acceptance-tests/{acceptance-pack-cluster-spring-demo/src/test/resources/pack_timeout_scenario.feature => acceptance-pack-akka-spring-demo/src/test/resources/pack_booking_timeout_suspended_scenario.feature} (83%)
 copy acceptance-tests/{acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature => acceptance-pack-akka-spring-demo/src/test/resources/pack_car_fail_compensated_scenario.feature} (74%)
 copy acceptance-tests/{acceptance-pack-spring-demo-with-nacos/src/test/resources/pack_compensation_scenario.feature => acceptance-pack-akka-spring-demo/src/test/resources/pack_hotel_fail_compensated_scenario.feature} (91%)
 copy acceptance-tests/{acceptance-pack-spring-demo-with-nacos => acceptance-pack-akka-spring-demo}/src/test/resources/pack_success_scenario.feature (98%)
 copy {persistence/persistence-jpa => alpha/alpha-benchmark}/pom.xml (66%)
 create mode 100644 alpha/alpha-benchmark/src/main/java/org/apache/servicecomb/pack/alpha/benchmark/Application.java
 create mode 100644 alpha/alpha-benchmark/src/main/java/org/apache/servicecomb/pack/alpha/benchmark/BenchmarkMetrics.java
 create mode 100644 alpha/alpha-benchmark/src/main/java/org/apache/servicecomb/pack/alpha/benchmark/SagaEventBenchmark.java
 copy {demo/saga-servicecomb-demo/scb-booking => alpha/alpha-benchmark}/src/main/resources/application.yaml (90%)
 create mode 100644 alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/PackSagaEvent.java
 create mode 100644 alpha/alpha-fsm/Benchmark.md
 create mode 100644 alpha/alpha-fsm/README.md
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.4.0-1w-100.png
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.4.0-1w-500.png
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.5.0-1w-100.png
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.5.0-1w-1000.png
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.5.0-1w-2000.png
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.5.0-1w-500.png
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.5.0-5w-1000.png
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.5.0-5w-2000.png
 create mode 100644 alpha/alpha-fsm/assets/cmd-0.5.0-5w-3000.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.4.0-1w-100.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.4.0-1w-500.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.5.0-1w-100.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.5.0-1w-1000.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.5.0-1w-2000.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.5.0-1w-500.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.5.0-5w-1000.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.5.0-5w-2000.png
 create mode 100644 alpha/alpha-fsm/assets/vm-0.5.0-5w-3000.png
 copy {omega/omega-spring-tx => alpha/alpha-fsm}/pom.xml (58%)
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java
 copy omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/UniqueIdGenerator.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorState.java (72%)
 copy alpha/{alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/AlphaException.java => alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/TxState.java} (79%)
 copy omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/ReconnectStreamObserver.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/ActiveMQActorEventChannel.java (57%)
 copy omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/IdGenerator.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/ActorEventChannel.java (81%)
 copy omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/ReconnectStreamObserver.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/KafkaActorEventChannel.java (57%)
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/MemoryActorEventChannel.java
 copy omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/ReconnectStreamObserver.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/channel/RedisActorEventChannel.java (57%)
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/domain/AddTxEventDomain.java
 copy omega/omega-context/src/main/java/org/apache/servicecomb/pack/omega/context/IdGenerator.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/domain/DomainEvent.java (80%)
 copy omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/tcc/events/TccStartedEvent.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/domain/SagaEndedDomain.java (57%)
 copy omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/tcc/DefaultParametersContext.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/domain/SagaStartedDomain.java (51%)
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/domain/UpdateTxEventDomain.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/SagaAbortedEvent.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/SagaEndedEvent.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/SagaStartedEvent.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/SagaTimeoutEvent.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/TxAbortedEvent.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/TxCompensatedEvent.java
 copy demo/saga-dubbo-demo/service-pub/src/main/java/org/apache/servicecomb/pack/demo/dubbo/pub/ServiceVO.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/TxComponsitedCheckInternalEvent.java (60%)
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/TxEndedEvent.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/TxStartedEvent.java
 copy alpha/{alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/TxTimeout.java => alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/base/BaseEvent.java} (53%)
 copy pack-common/src/main/java/org/apache/servicecomb/pack/common/TransactionStatus.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/base/SagaEvent.java (88%)
 copy omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/TransactionType.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/base/TxEvent.java (88%)
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/model/SagaData.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/model/TxEntity.java
 copy omega/omega-connector/omega-connector-grpc/src/main/java/org/apache/servicecomb/pack/omega/connector/grpc/core/SenderExecutor.java => alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/sink/ActorEventSink.java (80%)
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/sink/SagaActorEventSender.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/AkkaConfigPropertyAdapter.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SpringAkkaExtension.java
 create mode 100644 alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/eventbus/EventSubscribeBeanPostProcessor.java
 copy {omega/omega-spring-starter => alpha/alpha-fsm}/src/main/resources/META-INF/spring.factories (93%)
 create mode 100644 alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorTest.java
 copy omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionTestMain.java => alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaApplication.java (82%)
 create mode 100644 alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaEventSender.java
 create mode 100644 alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaIntegrationTest.java
 copy omega/omega-transaction/src/test/resources/log4j2-test.xml => alpha/alpha-fsm/src/test/resources/log4j2.xml (100%)
 copy alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/{AlphaEventController.java => fsm/FsmSagaDataController.java} (65%)
 copy alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/{ => fsm}/GrpcOmegaCallback.java (96%)
 create mode 100644 alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
 create mode 100644 alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java
 create mode 100644 alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSagaSimulator.java
 create mode 100644 alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/OmegaEventSender.java
 copy omega/omega-transaction/src/test/resources/log4j2-test.xml => alpha/alpha-server/src/test/resources/log4j2.xml (100%)
 create mode 100644 docs/fsm/assets/fsm.png
 create mode 100644 docs/fsm/assets/saga_state_diagram.png
 create mode 100644 docs/fsm/assets/state_table.png
 create mode 100644 docs/fsm/design_fsm_zh.md
 create mode 100644 docs/fsm/plantuml/saga-state-diagram.puml
 delete mode 100644 omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/RecoveryPolicyTimeoutWrapper.java
 copy omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/{TxAbortedEvent.java => SagaAbortedEvent.java} (83%)
 create mode 100644 omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/wrapper/RecoveryPolicyTimeoutWrapper.java
 create mode 100644 omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/wrapper/SagaStartAnnotationProcessorTimeoutWrapper.java
 copy omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/{SagaStartAspect.java => wrapper/SagaStartAnnotationProcessorWrapper.java} (74%)
 create mode 100644 omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/wrapper/TimeoutProb.java
 create mode 100644 omega/omega-transaction/src/main/java/org/apache/servicecomb/pack/omega/transaction/wrapper/TimeoutProbManager.java