Expand description
TC 的可复用部分。做成 lib 是为了让集成测试能直接驱动推进器 —— bin crate 是不能被 tests/ import 的。
两个协议层都放在这儿(http 和 grpc),理由同上:它们早先一个在
这里、一个在 bin crate 的 main.rs 里,结果 gRPC 层有 86% 覆盖率而 HTTP 层
是 0% —— 而「两边不许漂移」恰恰是这个项目最要紧的结构约束之一。
现在两边都能被 tests/ 拿到,可以用同一组用例做等价性测试。
Modules§
- api
- TC 的对外操作,与协议无关。
- auth
- 管理台的登录保护。
- driver
- 事务推进器:把状态机的决策落成真实的 HTTP 调用和状态更新。
- embedded
- 嵌入式 TC —— 把事务协调器当库链进你自己的进程,不需要单独部署一个服务。
- grpc
- gRPC 支持。两个方向都有:
- http
- HTTP 协议层:把 HTTP 请求翻译成
Api调用,再把结果翻译成 DTM 的应答格式。 - registry
- 进程内分支注册表 —— 嵌入式模式的核心。
- workflow
- workflow 模式:把事务流程写成一个普通函数,崩溃后从断点续跑。