Expand description
类型与状态机 —— 纯逻辑,不碰 I/O。
分布式事务的 bug 绝大多数在状态迁移上,所以把这层从存储和网络里隔离出来, 可以纯单元测试覆盖。
Re-exports§
pub use dialect::Backend;
Modules§
- dialect
- 方言层 —— 一套 SQL 模板跑 sqlite / postgres / mysql。
Structs§
- Saga
Step - 一个 SAGA 步骤:正向动作 + 对应补偿
Enums§
- Advance
- 推进全局事务后,状态机给出的下一步指令
- Branch
Op - 分支操作类型。跟 DTM 的字符串保持一致,方便客户端互通。
- Branch
Result - 分支被调用后的结论。这四态的区分是整个系统的命门。
- Branch
Status - Global
Status - Trans
Type
Constants§
- GRPC_
ABORTED - 业务明确要求回滚。gRPC 侧的 409
- GRPC_
FAILED_ PRECONDITION - 还在处理中。gRPC 侧的 425
- GRPC_OK
- gRPC 标准状态码。只列用得上的三个,其余一律走
_ => Unknown。
Functions§
- msg_
advance - 二阶段消息推进决策。
- next_
interval - 指数退避:10s → 20s → 40s → … → 上限 300s
- saga_
advance - SAGA 推进决策。不碰 I/O,所以可以穷举测试。
- tcc_
advance - TCC 推进决策。
- workflow_
advance - workflow 推进决策。
- xa_
advance - XA 推进决策。