Reference Case
一条可执行的完整业务:支付 → 托管 → 交付 → 验收 → 争议 → 裁定 → 结清。它让"机制能不能承载一单生意"第一次可以被跑出来、查出来、测试住。
它是什么
参考案例不是模拟数据,也不是真实成交。它是一条显式授权的假设基线:
- 用真实代码路径跑完整条链路
- 写入真实数据库
- 产出可查询的状态痕迹与结算指令
- 可以反复运行、清理、断言
运行
bash
# dry-run:只打印计划,不写库
npm run case:reference
# 写入真库
npm run case:reference -- --commit
# 争议分支
npm run case:reference -- --branch=disputed --commit
# 清理
npm run case:reference -- --cleanup --task-prefix=<前缀> --commit
# 自定义前缀,便于隔离
npm run case:reference -- --commit --task-prefix=check-20261018两条路径
released
支付 100000
→ 托管 held
→ 交付 delivered
→ 验收 accepted
→ 结算 released
toAgent 100000 / toBuyer 0split
支付 100000
→ 托管 held
→ 交付 delivered
→ 验收 rejected
→ 争议 missing_items
→ 裁定:按条款赔 30%
→ 结算 split
toAgent 70000 / toBuyer 30000依据会写进结算指令:
争议事由 missing_items → 合同 §5.2 → 比例 30%它验证了什么
| 层 | 验证点 |
|---|---|
| L0 | 事件写入、路径可寻址、trace 可重建 |
| L1 | 状态机、不变量、验收与争议流转 |
| L2 | 金额守恒、结算指令、赔付策略 |
| 跨层 | Mongo 与 L0 同一事务 |
| 运营 | /console/insight 可查看完整痕迹 |
四类域协同
这条案例同时跑通了四种事实形态:
| 步骤 | 域 | 存储 |
|---|---|---|
| ① 物料 | master | master_entities |
| ② 算价 | computation | computation_runs |
| ③ 订单 | event | state_events |
| ④ 库存预留 | ledger | ledger_accounts |
| ⑤⑥ 交付 / 验收 | event | state_events |
| ⑦ 结算 → 分录 | event | state_events(期间域) |
运行时输出:
物料:M-...
算价:pricing v1 → 100000
库存:100 → 99(预留 1)
试算平衡:借 100000 / 贷 100000 · ✅ 平衡 · 1 条分录模型的统一说明见 四类事实形态与域模型。
它没有验证什么
| 未验证 | 说明 |
|---|---|
| 真实商业规则 | 比例与条款是假设 |
| 真实交付物 | 3 个文件 + 录音是示例 |
| 资金通道 | 只产出指令 |
| 交易密度 | 一单不代表市场 |
| 性能 | 玩具规模 |
源码位置
libs/modules/src/reference-case/
├── services/reference-case.service.ts
└── README.md
scripts/run-reference-case.ts
scripts/record-fulfillment-order.ts
scripts/fixtures/fulfillment-order.template.json