Expand description
类型与状态机 —— 纯逻辑,不碰 I/O。
分布式事务的 bug 绝大多数在状态迁移上,所以把这层从存储和网络里隔离出来, 可以纯单元测试覆盖。
Re-exports§
pub use dialect::Backend;
Modules§
- dialect
- 方言层 —— 一套 SQL 模板跑 sqlite / postgres / mysql。
Structs§
- Retry
Policy - 重试退避策略。
- 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 起、300s 封顶)
- next_
interval_ with - 指数退避:
initial→ ×2 → … → 封顶max - saga_
advance - SAGA 推进决策。不碰 I/O,所以可以穷举测试。
- tcc_
advance - TCC 推进决策。
- workflow_
advance - workflow 推进决策。
- xa_
advance - XA 推进决策。