Skip to main content

Module registry

Module registry 

Source
Expand description

进程内分支注册表 —— 嵌入式模式的核心。

§为什么分支要用「名字」而不是闭包

事务必须能跨进程重启恢复,而闭包没法持久化。所以数据库里存的是名字 (local://deduct),重启后靠注册表把名字重新解析成函数。

这是持久化执行引擎的通用做法,也是唯一正确的做法:

提交时   steps = ["local://deduct", "local://deduct_undo"]  → 落库
崩溃重启 从库里读出 "local://deduct" → registry 查表 → 拿到函数 → 继续推

代价:注册表在重启后必须注册同样的名字,否则事务推不动。这不是缺陷, 是把“代码版本“这个隐式依赖显式化了 —— 漏注册会明确报错,而不是静默跑错。

Structs§

BranchCtx
分支被调用时拿到的上下文。业务侧用它做幂等(配合 dtmrs-barrier)。
GrpcTarget
拆好的 gRPC 分支地址。
Registry

Enums§

Target
分支目标:进程内函数、远端 HTTP,还是远端 gRPC。

Functions§

parse_target