This is an automated email from the ASF dual-hosted git repository. flypiggy pushed a commit to branch feature/support-raft in repository https://gitbox.apache.org/repos/asf/incubator-seata-go.git
commit d673327d99d12a68f8e056a65423d48c63c702e4 Merge: dae0737a 66e77770 Author: 福來|Fulai <[email protected]> AuthorDate: Thu Mar 5 02:53:00 2026 +0800 Merge remote-tracking branch 'upstream/master' into feature/support-raft .github/ISSUE_TEMPLATE/#0_bug_report_zh.yml | 4 +- .github/ISSUE_TEMPLATE/#1_feature_request_zh.yml | 4 +- .github/ISSUE_TEMPLATE/0_bug_report.yml | 4 +- .github/ISSUE_TEMPLATE/1_feature_request.yml | 2 + .github/PULL_REQUEST_TEMPLATE.md | 11 +- .github/workflows/golangci-lint.yml | 1 - .github/workflows/integrate-test.yml | 2 +- goimports.sh => .github/workflows/issue-robot.yml | 26 +- .github/workflows/unit-test.yml | 79 ++ .gitignore | 1 + .licenserc.yaml | 1 + goimports.sh => VERSION | 14 +- changes/2.1.0.md | 125 ++ changes/2.1.0_zh.md | 125 ++ changes/dev.md | 7 +- cmd/start.go | 61 + go.mod | 29 +- go.sum | 36 +- goimports.sh | 2 +- integrate_test.sh | 5 +- makefile | 4 +- pkg/client/client.go | 28 +- pkg/client/client_test.go | 161 +++ pkg/client/config.go | 21 +- pkg/compressor/compressor_type.go | 3 + pkg/compressor/deflate_compress.go | 2 +- .../{zip_compress_test.go => snappy_compress.go} | 29 +- ...ip_compress_test.go => snappy_compress_test.go} | 11 +- pkg/compressor/zip_compress.go | 2 +- pkg/compressor/zip_compress_test.go | 2 + pkg/constant/context_test.go | 146 ++ pkg/datasource/init.go | 2 +- pkg/datasource/init_test.go | 55 + pkg/datasource/sql/async_worker.go | 13 +- pkg/datasource/sql/at_resource_manager.go | 12 +- pkg/datasource/sql/conn.go | 6 +- pkg/datasource/sql/conn_at.go | 8 +- pkg/datasource/sql/conn_at_test.go | 10 +- pkg/datasource/sql/conn_xa.go | 9 +- pkg/datasource/sql/conn_xa_test.go | 10 +- pkg/datasource/sql/connector.go | 2 +- pkg/datasource/sql/connector_test.go | 8 +- pkg/datasource/sql/datasource/base/meta_cache.go | 10 +- .../sql/datasource/base/meta_cache_test.go | 106 +- .../sql/datasource/datasource_manager.go | 6 +- pkg/datasource/sql/datasource/mysql/meta_cache.go | 4 +- .../sql/datasource/mysql/meta_cache_test.go | 367 +++++ pkg/datasource/sql/datasource/mysql/trigger.go | 14 +- .../sql/datasource/mysql/trigger_test.go | 547 +++++++- pkg/datasource/sql/db.go | 16 +- pkg/datasource/sql/driver.go | 12 +- pkg/datasource/sql/driver_test.go | 8 +- pkg/datasource/sql/exec/at/at_executor.go | 10 +- pkg/datasource/sql/exec/at/at_executor_test.go | 422 ++++++ pkg/datasource/sql/exec/at/base_executor.go | 12 +- pkg/datasource/sql/exec/at/base_executor_test.go | 6 +- pkg/datasource/sql/exec/at/config.go | 2 +- pkg/datasource/sql/exec/at/delete_executor.go | 14 +- pkg/datasource/sql/exec/at/delete_executor_test.go | 8 +- pkg/datasource/sql/exec/at/escape.go | 4 +- pkg/datasource/sql/exec/at/escape_test.go | 2 +- pkg/datasource/sql/exec/at/insert_executor.go | 10 +- pkg/datasource/sql/exec/at/insert_executor_test.go | 12 +- .../sql/exec/at/insert_on_update_executor.go | 10 +- .../sql/exec/at/insert_on_update_executor_test.go | 6 +- .../sql/exec/at/multi_delete_executor.go | 10 +- .../sql/exec/at/multi_delete_executor_test.go | 10 +- pkg/datasource/sql/exec/at/multi_executor.go | 6 +- pkg/datasource/sql/exec/at/multi_update_excutor.go | 14 +- .../sql/exec/at/multi_update_excutor_test.go | 14 +- pkg/datasource/sql/exec/at/plain_executor.go | 4 +- pkg/datasource/sql/exec/at/plain_executor_test.go | 6 +- .../sql/exec/at/select_for_update_executor.go | 20 +- .../sql/exec/at/select_for_update_executor_test.go | 4 +- pkg/datasource/sql/exec/at/update_executor.go | 18 +- pkg/datasource/sql/exec/at/update_executor_test.go | 16 +- pkg/datasource/sql/exec/at/update_join_executor.go | 12 +- .../sql/exec/at/update_join_executor_test.go | 13 +- pkg/datasource/sql/exec/config/config.go | 4 +- pkg/datasource/sql/exec/config/config_test.go | 112 ++ pkg/datasource/sql/exec/executor.go | 4 +- pkg/datasource/sql/exec/executor_test.go | 471 +++++++ pkg/datasource/sql/exec/hook.go | 2 +- pkg/datasource/sql/exec/hook_test.go | 460 +++++++ .../sql/exec/select_for_update_executor.go | 16 +- pkg/datasource/sql/hook/logger_hook.go | 6 +- pkg/datasource/sql/hook/logger_hook_test.go | 188 +++ pkg/datasource/sql/hook/undo_log_hook.go | 10 +- pkg/datasource/sql/hook/undo_log_hook_test.go | 555 ++++++++ pkg/datasource/sql/mock/mock_datasource_manager.go | 8 +- .../sql/mock/mock_datasource_manager_test.go | 209 +++ .../sql/mock/mock_driver_components_test.go | 203 +++ pkg/datasource/sql/mock/mock_driver_test.go | 262 ++++ .../sql/mock/mock_table_meta_cache_test.go | 91 ++ pkg/datasource/sql/parser/parse_factory_test.go | 4 +- pkg/datasource/sql/parser/parser_factory.go | 2 +- pkg/datasource/sql/plugin.go | 14 +- pkg/datasource/sql/stmt.go | 6 +- pkg/datasource/sql/tx.go | 12 +- pkg/datasource/sql/tx_at.go | 2 +- pkg/datasource/sql/types/const_test.go | 195 +++ pkg/datasource/sql/types/dbtype_string_test.go | 57 + pkg/datasource/sql/types/executor.go | 2 +- pkg/datasource/sql/types/executor_test.go | 206 +++ pkg/datasource/sql/types/image.go | 11 +- pkg/datasource/sql/types/image_test.go | 150 +++ pkg/datasource/sql/types/key_type_test.go | 77 ++ pkg/datasource/sql/types/meta_test.go | 94 ++ ...ketword_checker.go => mysql_keyword_checker.go} | 0 .../sql/types/mysql_keyword_checker_test.go | 263 ++++ pkg/datasource/sql/types/sql_data_type_test.go | 193 +++ pkg/datasource/sql/types/sql_test.go | 216 +++ pkg/datasource/sql/types/types.go | 2 +- pkg/datasource/sql/types/types_test.go | 387 ++++++ pkg/datasource/sql/undo/base/undo.go | 33 +- pkg/datasource/sql/undo/base/undo_test.go | 1411 ++++++++++++++++++++ .../sql/undo/builder/basic_undo_log_builder.go | 10 +- .../undo/builder/basic_undo_log_builder_test.go | 20 +- .../undo/builder/mysql_delete_undo_log_builder.go | 10 +- .../builder/mysql_delete_undo_log_builder_test.go | 65 +- .../undo/builder/mysql_insert_undo_log_builder.go | 8 +- .../builder/mysql_insert_undo_log_builder_test.go | 47 +- ...ql_insertonduplicate_update_undo_log_builder.go | 228 +++- ...sertonduplicate_update_undo_log_builder_test.go | 116 +- .../builder/mysql_multi_delete_undo_log_builder.go | 8 +- .../undo/builder/mysql_multi_undo_log_builder.go | 4 +- .../builder/mysql_multi_undo_log_builder_test.go | 208 +++ .../builder/mysql_multi_update_undo_log_builder.go | 8 +- .../mysql_multi_update_undo_log_builder_test.go | 4 +- .../undo/builder/mysql_update_undo_log_builder.go | 10 +- .../builder/mysql_update_undo_log_builder_test.go | 10 +- pkg/datasource/sql/undo/config.go | 2 +- pkg/datasource/sql/undo/config_test.go | 201 +++ pkg/datasource/sql/undo/executor/executor.go | 35 +- pkg/datasource/sql/undo/executor/executor_test.go | 361 ++++- .../undo/executor/mysql_undo_delete_executor.go | 4 +- .../executor/mysql_undo_delete_executor_test.go | 316 +++++ .../undo/executor/mysql_undo_executor_holder.go | 2 +- .../executor/mysql_undo_executor_holder_test.go | 92 ++ .../undo/executor/mysql_undo_insert_executor.go | 4 +- .../executor/mysql_undo_insert_executor_test.go | 357 +++++ .../undo/executor/mysql_undo_update_executor.go | 4 +- .../executor/mysql_undo_update_executor_test.go | 310 +++++ pkg/datasource/sql/undo/executor/sql.go | 4 +- pkg/datasource/sql/undo/executor/sql_test.go | 262 +++- pkg/datasource/sql/undo/executor/utils.go | 6 +- pkg/datasource/sql/undo/executor/utils_test.go | 518 +++++++ .../sql/undo/factor/undo_executor_factory.go | 6 +- .../sql/undo/factor/undo_executor_factory_test.go | 163 +++ .../sql/undo/factor/undo_executor_holder_factor.go | 6 +- .../factor/undo_executor_holder_factor_test.go | 130 ++ pkg/datasource/sql/undo/mysql/default.go | 4 +- .../sql/undo/mysql/default_test.go} | 39 +- pkg/datasource/sql/undo/mysql/undo.go | 6 +- pkg/datasource/sql/undo/mysql/undo_test.go | 151 +++ .../sql/undo/parser/branch_undo_log.pb.go | 5 +- .../sql/undo/parser/const_test.go} | 26 +- pkg/datasource/sql/undo/parser/parser_api.go | 2 +- pkg/datasource/sql/undo/parser/parser_api_test.go | 187 +++ .../sql/undo/parser/parser_cache_test.go | 73 + pkg/datasource/sql/undo/parser/parser_json.go | 2 +- pkg/datasource/sql/undo/parser/parser_json_test.go | 42 +- pkg/datasource/sql/undo/parser/parser_protobuf.go | 11 +- .../sql/undo/parser/parser_protobuf_test.go | 35 +- .../sql/undo/parser/protobuf_conversion_test.go | 422 ++++++ .../sql/undo/parser/protobuf_generated_test.go | 362 +++++ pkg/datasource/sql/undo/undo.go | 12 +- pkg/datasource/sql/undo/undo_executor.go | 2 +- .../sql/undo/undo_executor_holder_test.go | 117 ++ .../sql/undo/undo_executor_test.go} | 37 +- pkg/datasource/sql/undo/undo_test.go | 367 +++++ pkg/datasource/sql/undo_test.go | 4 +- pkg/datasource/sql/util/convert_test.go | 473 +++++++ pkg/datasource/sql/util/ctxutil_test.go | 505 +++++++ pkg/datasource/sql/util/lockkey.go | 3 +- pkg/datasource/sql/util/lockkey_test.go | 543 ++++++++ pkg/datasource/sql/util/params_test.go | 172 +++ pkg/datasource/sql/util/sql_test.go | 570 ++++++++ pkg/datasource/sql/xa/mysql_xa_connection.go | 2 +- pkg/datasource/sql/xa/mysql_xa_connection_test.go | 2 +- pkg/datasource/sql/xa/xa_resource_factory.go | 4 +- pkg/datasource/sql/xa_resource_manager.go | 12 +- pkg/discovery/config.go | 2 +- pkg/discovery/etcd3.go | 4 +- pkg/discovery/etcd3_test.go | 12 +- pkg/discovery/file.go | 4 +- pkg/discovery/mock/mock_etcd_client_test.go | 160 +++ pkg/discovery/mock/test_etcd_client.go | 2 +- pkg/integration/dubbo/dubbo_transaction_filter.go | 6 +- .../dubbo/dubbo_transaction_filter_test.go | 420 +++++- pkg/integration/gin/gin_transaction_middleware.go | 6 +- .../gin/gin_transaction_middleware_test.go | 172 +++ .../grpc/grpc_transaction_interceptor.go | 8 +- .../grpc/grpc_transaction_interceptor_test.go | 353 +++++ pkg/integration/integration.go | 2 +- pkg/integration/integration_test.go | 205 +++ pkg/protocol/branch/branch_test.go | 66 + pkg/protocol/codec/branch_commit_req_codec.go | 6 +- pkg/protocol/codec/branch_commit_req_codec_test.go | 4 +- pkg/protocol/codec/branch_commit_response_codec.go | 8 +- .../codec/branch_commit_response_codec_test.go | 6 +- pkg/protocol/codec/branch_register_req_codec.go | 6 +- .../codec/branch_register_req_codec_test.go | 4 +- .../codec/branch_register_response_codec.go | 6 +- .../codec/branch_register_response_codec_test.go | 4 +- pkg/protocol/codec/branch_report_req_codec.go | 6 +- pkg/protocol/codec/branch_report_req_codec_test.go | 4 +- pkg/protocol/codec/branch_rollback_req_codec.go | 6 +- .../codec/branch_rollback_req_codec_test.go | 4 +- .../codec/branch_rollback_response_codec.go | 8 +- .../codec/branch_rollback_response_codec_test.go | 6 +- .../codec/branch_statue_report_response_codec.go | 6 +- .../branch_statue_report_response_codec_test.go | 4 +- pkg/protocol/codec/codec.go | 5 +- .../codec/common_global_end_request_codec.go | 4 +- .../codec/common_global_end_response_codec.go | 6 +- .../codec/common_identify_request_codec.go | 4 +- .../codec/common_identify_response_codec.go | 4 +- pkg/protocol/codec/global_begin_request_codec.go | 4 +- .../codec/global_begin_request_codec_test.go | 2 +- pkg/protocol/codec/global_begin_response_codec.go | 6 +- .../codec/global_begin_response_codec_test.go | 4 +- pkg/protocol/codec/global_commit_req_codec.go | 2 +- pkg/protocol/codec/global_commit_req_codec_test.go | 2 +- pkg/protocol/codec/global_commit_response_codec.go | 2 +- .../codec/global_commit_response_codec_test.go | 2 +- pkg/protocol/codec/global_lock_query_req_codec.go | 6 +- .../codec/global_lock_query_req_codec_test.go | 4 +- pkg/protocol/codec/global_lock_query_resp_codec.go | 6 +- .../codec/global_lock_query_resp_codec_test.go | 4 +- pkg/protocol/codec/global_report_request_codec.go | 7 +- .../codec/global_report_request_codec_test.go | 2 +- pkg/protocol/codec/global_report_response_codec.go | 2 +- .../codec/global_report_response_codec_test.go | 2 +- pkg/protocol/codec/global_rollback_req_codec.go | 2 +- .../codec/global_rollback_req_codec_test.go | 2 +- .../codec/global_rollback_response_codec.go | 2 +- .../codec/global_rollback_response_codec_test.go | 2 +- pkg/protocol/codec/global_status_req_codec.go | 2 +- pkg/protocol/codec/global_status_req_codec_test.go | 2 +- pkg/protocol/codec/global_status_response_codec.go | 2 +- .../codec/global_status_response_codec_test.go | 2 +- pkg/protocol/codec/register_rm_request_codec.go | 4 +- .../codec/register_rm_request_codec_test.go | 2 +- pkg/protocol/codec/register_rm_response_codec.go | 2 +- .../codec/register_rm_response_codec_test.go | 2 +- pkg/protocol/codec/register_tm_request_codec.go | 2 +- .../codec/register_tm_request_codec_test.go | 2 +- pkg/protocol/codec/register_tm_response_codec.go | 2 +- .../codec/register_tm_response_codec_test.go | 2 +- pkg/protocol/message/request_message.go | 2 +- pkg/protocol/message/response_message.go | 4 +- pkg/remoting/config/config.go | 2 +- pkg/remoting/config/config_test.go | 224 ++++ pkg/remoting/config/session_config_test.go | 244 ++++ pkg/remoting/getty/getty_client.go | 6 +- pkg/remoting/getty/getty_client_test.go | 6 +- pkg/remoting/getty/getty_init.go | 4 +- pkg/remoting/getty/getty_remoting.go | 6 +- pkg/remoting/getty/getty_remoting_test.go | 2 +- pkg/remoting/getty/listener.go | 12 +- pkg/remoting/getty/readwriter.go | 6 +- pkg/remoting/getty/readwriter_test.go | 4 +- pkg/remoting/getty/session_manager.go | 10 +- .../loadbalance/consistent_hash_loadbalance.go | 2 + .../consistent_hash_loadbalance_test.go | 2 +- .../loadbalance/least_active_loadbalance.go | 2 +- .../loadbalance/least_active_loadbalance_test.go | 5 +- pkg/remoting/loadbalance/loadbalance.go | 4 - .../loadbalance/random_loadbalance_test.go | 2 +- .../loadbalance/round_robin_loadbalance.go | 167 ++- .../loadbalance/round_robin_loadbalance_test.go | 102 +- pkg/remoting/loadbalance/xid_loadbalance.go | 4 +- pkg/remoting/loadbalance/xid_loadbalance_test.go | 2 +- pkg/remoting/mock/mock_getty_session_test.go | 722 ++++++++++ .../client/client_heart_beat_processon.go | 6 +- .../client/client_heart_beat_processor_test.go | 6 +- .../client/client_on_response_processor.go | 6 +- .../client/client_on_response_processor_test.go | 4 +- .../processor/client/rm_branch_commit_processor.go | 8 +- .../client/rm_branch_commit_processor_test.go | 10 +- .../client/rm_branch_rollback_processor.go | 8 +- .../client/rm_branch_rollback_processor_test.go | 10 +- pkg/remoting/processor/remoting_processor.go | 2 +- pkg/rm/config_test.go | 269 ++++ pkg/rm/init.go | 5 + pkg/rm/init_test.go | 220 +++ pkg/rm/rm_api.go | 2 +- pkg/rm/rm_api_test.go | 2 +- pkg/rm/rm_cache.go | 2 +- pkg/rm/rm_cache_test.go | 2 +- pkg/rm/rm_remoting.go | 6 +- pkg/rm/tcc/config.go | 2 +- pkg/rm/tcc/config_test.go | 182 +++ pkg/rm/tcc/fence/config/tcc_fence_config.go | 2 +- ...cc_fence_config.go => tcc_fence_config_test.go} | 25 +- pkg/rm/tcc/fence/fence.go | 7 +- pkg/rm/tcc/fence/fence_api.go | 6 +- pkg/rm/tcc/fence/fence_api_test.go | 6 +- pkg/rm/tcc/fence/fence_driver.go | 2 +- pkg/rm/tcc/fence/fence_driver_conn.go | 4 +- pkg/rm/tcc/fence/fence_driver_conn_test.go | 562 ++++++++ pkg/rm/tcc/fence/fence_driver_tx.go | 2 +- pkg/rm/tcc/fence/fence_test.go | 792 +++++++++++ .../tcc/fence/handler/tcc_fence_wrapper_handler.go | 14 +- .../handler/tcc_fence_wrapper_handler_test.go | 1043 +++++++++++++++ pkg/rm/tcc/fence/store/db/dao/store_api.go | 4 +- pkg/rm/tcc/fence/store/db/dao/tcc_fence_db.go | 9 +- pkg/rm/tcc/fence/store/db/dao/tcc_fence_db_test.go | 6 +- pkg/rm/tcc/fence/store/db/model/tcc_fence_do.go | 2 +- .../tcc/fence/store/db/sql/tcc_fence_store_sql.go | 2 +- .../fence/store/db/sql/tcc_fence_store_sql_test.go | 409 ++++++ pkg/rm/tcc/tcc_resource.go | 15 +- pkg/rm/tcc/tcc_resource_test.go | 8 +- pkg/rm/tcc/tcc_service.go | 14 +- pkg/rm/tcc/tcc_service_test.go | 10 +- pkg/rm/two_phase.go | 2 +- pkg/rm/two_phase_test.go | 4 +- pkg/{rm/tcc => saga}/config.go | 11 +- pkg/saga/readme.md | 47 + .../rm/handler_saga.go} | 21 +- .../rm_cache_test.go => saga/rm/saga_resource.go} | 44 +- pkg/saga/rm/saga_resource_manager.go | 159 +++ .../rm/saga_resource_manager_test.go} | 33 +- .../rm/state_machine_engine_holder.go} | 25 +- .../saga/runtime/engine_registry.go | 38 +- pkg/saga/statemachine/constant/constant.go | 104 ++ pkg/saga/statemachine/engine/config/bootstrap.go | 62 + .../engine/config/default_statemachine_config.go | 824 ++++++++++++ .../config/default_statemachine_config_test.go | 325 +++++ pkg/saga/statemachine/engine/config/noop_store.go | 87 ++ .../statemachine/engine/config/store_bootstrap.go | 71 + .../engine/config/testdata/invalid.json | 3 + .../engine/config/testdata/invalid.yaml | 18 +- .../engine/config/testdata/order_saga.json | 274 ++++ .../engine/config/testdata/order_saga.yaml | 204 +++ .../engine/config/testdata/order_saga_v2.json | 322 +++++ .../engine/config/testdata/order_saga_v2.yaml | 228 ++++ .../engine/config/testdata/saga_config.json | 13 + .../engine/config/testdata/saga_config.yaml | 24 +- .../engine/config/testdata/saga_config_v2.json | 13 + .../engine/config/testdata/saga_config_v2.yaml | 24 +- .../core/process_ctrl_statemachine_engine.go | 747 +++++++++++ .../process_ctrl_statemachine_engine_async_test.go | 345 +++++ .../statemachine/engine/exception/exception.go | 84 ++ .../engine/exception/exception_test.go | 68 + .../engine/exception/forward_invalid_exception.go} | 20 +- .../exception/forward_invalid_exception_test.go | 68 + .../statemachine/engine/expr/cel_expression.go | 96 ++ .../engine/expr/cel_expression_factory.go} | 24 +- .../engine/expr/cel_expression_factory_test.go} | 11 +- .../engine/expr/cel_expression_test.go} | 28 +- .../statemachine/engine/expr/error_expression.go} | 35 +- .../statemachine/engine/expr/expression.go} | 17 +- .../statemachine/engine/expr/expression_factory.go | 6 +- .../engine/expr/expression_factory_manager.go | 51 + .../engine/expr/expression_resolver.go | 105 ++ .../engine/expr/expression_resolver_test.go | 70 + .../engine/expr/sequence_expression.go | 64 + .../engine/expr/sequence_expression_factory.go | 56 + .../statemachine/engine/invoker/func_invoker.go | 225 ++++ .../engine/invoker/func_invoker_test.go | 168 +++ .../statemachine/engine/invoker/grpc_invoker.go | 263 ++++ .../engine/invoker/grpc_invoker_test.go | 187 +++ .../statemachine/engine/invoker/http_invoker.go | 220 +++ .../engine/invoker/http_invoker_test.go | 179 +++ pkg/saga/statemachine/engine/invoker/invoker.go | 101 ++ .../engine/invoker/javascript_script_invoker.go | 162 +++ .../invoker/javascript_script_invoker_test.go | 262 ++++ .../statemachine/engine/invoker/json_parser.go} | 23 +- .../statemachine/engine/invoker/local_invoker.go | 200 +++ .../engine/invoker/local_invoker_test.go | 212 +++ .../engine/pcext/compensation_holder.go | 92 ++ pkg/saga/statemachine/engine/pcext/engine_utils.go | 236 ++++ pkg/saga/statemachine/engine/pcext/instruction.go | 113 ++ .../engine/pcext/loop_context_holder.go | 111 ++ .../statemachine/engine/pcext/loop_task_utils.go | 78 ++ .../statemachine/engine/pcext/parameter_utils.go | 143 ++ .../statemachine/engine/pcext/process_handler.go | 197 +++ .../statemachine/engine/pcext/process_router.go | 139 ++ .../statemachine/engine/pcext/state_router_impl.go | 355 +++++ .../engine/pcext/state_router_impl_test.go | 152 +++ .../engine/repo/repository/state_log_repository.go | 139 ++ .../repo/repository/state_machine_repository.go | 255 ++++ .../repository/state_machine_repository_test.go | 162 +++ .../statemachine/engine/repo/statemachine_store.go | 48 + .../saga/statemachine/engine/sequence/sequence.go | 6 +- pkg/saga/statemachine/engine/sequence/snowflake.go | 133 ++ .../engine/sequence/snowflake_test.go} | 36 +- .../statemachine/engine/sequence/uuid.go} | 19 +- .../statemachine/engine/serializer/serializer.go | 60 + .../engine/serializer/serializer_test.go} | 15 +- .../statemachine/engine/statemachine_config.go | 81 ++ .../statemachine/engine/statemachine_engine.go | 60 + .../engine/statemachine_engine_test.go | 49 + pkg/saga/statemachine/engine/strategy.go | 37 + .../engine/strategy/status_decision.go | 274 ++++ .../engine/utils/process_context_utils.go | 113 ++ .../process_ctrl/bussiness_processor.go | 111 ++ .../process_ctrl/default_process_handler.go} | 10 +- .../statemachine/process_ctrl/event.go} | 5 +- pkg/saga/statemachine/process_ctrl/event_bus.go | 157 +++ .../statemachine/process_ctrl/event_consumer.go} | 44 +- .../statemachine/process_ctrl/event_publisher.go} | 22 +- .../handlers/service_task_state_handler.go | 266 ++++ .../saga/statemachine/process_ctrl/instruction.go | 5 +- .../process_ctrl/process/process_type.go} | 12 +- .../statemachine/process_ctrl/process_context.go | 225 ++++ .../process_ctrl/process_controller.go} | 38 +- .../statemachine/process_ctrl/process_router.go | 112 ++ .../statelang/parser/choice_state_json_parser.go | 93 ++ .../parser/compensation_trigger_state_parser.go} | 47 +- .../statelang/parser/end_state_parser.go | 83 ++ .../statelang/parser/statemachine_config_parser.go | 140 ++ .../parser/statemachine_config_parser_test.go | 884 ++++++++++++ .../statelang/parser/statemachine_json_parser.go | 131 ++ .../parser/statemachine_json_parser_test.go | 127 ++ .../statelang/parser/statemachine_parser.go | 262 ++++ .../statelang/parser/sub_state_machine_parser.go | 103 ++ .../statelang/parser/task_state_json_parser.go | 351 +++++ pkg/saga/statemachine/statelang/state.go | 92 ++ .../statemachine/statelang/state/choice_state.go | 92 ++ .../statelang/state/compensation_trigger_state.go} | 23 +- pkg/saga/statemachine/statelang/state/end_state.go | 81 ++ .../statelang/state/loop_start_state.go} | 23 +- .../statelang/state/sub_state_machine.go | 87 ++ .../statemachine/statelang/state/task_state.go | 478 +++++++ pkg/saga/statemachine/statelang/state_instance.go | 360 +++++ pkg/saga/statemachine/statelang/statemachine.go | 278 ++++ .../statelang/statemachine_instance.go | 351 +++++ pkg/saga/statemachine/statemachine.go | 47 + pkg/saga/statemachine/store/db/db.go | 121 ++ pkg/saga/statemachine/store/db/db_test.go | 64 + pkg/saga/statemachine/store/db/statelang.go | 133 ++ pkg/saga/statemachine/store/db/statelang_test.go | 92 ++ pkg/saga/statemachine/store/db/statelog.go | 1360 +++++++++++++++++++ pkg/saga/statemachine/store/db/statelog_test.go | 823 ++++++++++++ pkg/saga/statemachine/store/store.go | 57 + pkg/saga/tm/default_saga_transactional_template.go | 175 +++ pkg/saga/tm/saga_transactional_template.go | 44 + pkg/tm/config_test.go | 175 +++ pkg/tm/constant.go | 2 +- pkg/tm/constant_test.go | 135 ++ pkg/tm/context.go | 5 +- pkg/tm/context_test.go | 4 +- pkg/tm/global_transaction.go | 33 +- pkg/tm/global_transaction_test.go | 6 +- pkg/tm/init_test.go | 170 +++ pkg/tm/transaction_executor.go | 4 +- pkg/tm/transaction_executor_test.go | 5 +- pkg/{rm/init.go => tm/transaction_hook.go} | 22 +- .../rm_cache.go => tm/transaction_hook_manager.go} | 48 +- pkg/util/collection/collection.go | 44 +- pkg/util/collection/collection_test.go | 23 + pkg/util/convert/convert_test.go | 676 ++++++++++ pkg/util/errors/code.go | 15 + pkg/util/errors/error_test.go | 504 +++++++ pkg/util/flagext/deprecated.go | 2 +- pkg/util/flagext/register_test.go | 77 ++ pkg/util/log/logging_test.go | 583 ++++++++ pkg/util/reflectx/unmarkshaler.go | 165 +++ testdata/context.go | 4 +- testdata/meta_cache.go | 2 +- testdata/mock_tcc.go | 2 +- .../saga/engine/invoker/grpc/product.go | 53 +- testdata/saga/engine/invoker/grpc/product.pb.go | 237 ++++ testdata/saga/engine/invoker/grpc/product.proto | 35 + .../saga/engine/invoker/grpc/product_grpc.pb.go | 168 +++ .../statelang/simple_statelang_with_choice.json | 38 + .../statelang/simple_statelang_with_choice.yaml | 40 +- testdata/saga/statelang/simple_statemachine.json | 138 ++ testdata/saga/statelang/simple_statemachine.yaml | 105 ++ .../saga/statelang/state_machine_new_designer.json | 424 ++++++ .../saga/statelang/state_machine_new_designer.yaml | 301 +++++ testdata/sql/saga/sqlite_init.sql | 81 ++ 475 files changed, 44527 insertions(+), 1361 deletions(-) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
