BC-09|外部渠道协作(channel)
状态:working-draft;本次边界建议,未批准为完整新基线。
Design=draft;Contract=not-defined-here;Implementation=not-assessed;Verification=document-review-only。
上游:SD-08(仍为候选占位)
输入:既有模块设计(历史材料保留在docs_bak/)
编写责任:主会话;业务决策 / 长期维护责任人:待指定。日期:2026-09-18。
1. 需要什么,它是什么
让异构外部平台参与鼎味业务,同时隔离外部术语、状态与不确定性。
统一语言:ExternalObservation 是外部观察;Binding 是外部与内部对象的映射;Import 是转换过程;OutboundReceipt 是外部动作结果,不等同内部业务完成。
2. 拥有与不拥有
拥有: 渠道账号及授权关系、能力版本、绑定、接收去重与同步游标、外部观察、导入过程、出站回执、渠道账单差异、退出记录。
不拥有: 内部商品、订单、容量、资金、包裹、售后最终事实;内部团长活动并非外部渠道账号。
这里列出事实族和职责,不直接定义数据库表、聚合事务范围或最终接口名称;详细模型须在下一层继续验证。
3. 谁参与,怎样使用
渠道运营在后台授权、绑定与处置差异;Provider 通过回调或拉取提供观察;Worker 转内部命令并回传履约结果。
典型场景:验签并归一受限主体 → 接收观察 → 核对账号能力和映射 → 调用事实 Owner → 记录结果并回传。外部订单不满足条件时保留冲突,不创建伪内部订单。
4. 如何与其他上下文协作
通过防腐适配调用 Catalog、Customer、Demand、Commerce、Fulfillment;与支付适配分工:微信支付等支付协议由 Commerce 负责,Channel 不包办一切外部连接。
调用方向、信息方向、流程协调者和失败责任统一见 CONTEXT-MAP;事实边界及混淆项见 OWNERSHIP。不使用共享可变实体或跨 Owner 写表。
5. 不变量、权限与一致性
外部状态不能覆盖内部终态;相同渠道业务来源不能重复建内部订单;未知外部结果不盲目重发不可逆动作。
所有入口遵循 统一授权接缝。本上下文负责自己的资源关系和业务动作条件,不能仅凭客户端提交的角色或对象归属放行。
6. 失败、并发与恢复
签名通过后仍校验业务权限和关联账号;限流、乱序、映射漂移、密钥撤销均有隔离;退出先停新动作并保留历史及队列处理证据。
部署和数据库共用不构成跨上下文原子性承诺。需要立即成立的约束在对应事实 Owner 内执行;跨域步骤记录意图、版本、结果与恢复进度。
7. 边界取舍与可能推翻结论的证据
保持独立防腐上下文,不按每个 Provider 建一套内部业务 BC。供应商差异留在适配器;独立交易模式出现时先审查业务语义。
反证检查:验证伪造/重放回调、合法签名访问错误账号、乱序回退、重复导入、同步成功但内部拒绝、退出后积压任务执行。
上述是设计反例清单,尚未执行产品测试。拆合讨论及重开条件见 BOUNDARY-DECISIONS。
8. 未决事项与后续交付
具体 Provider 能力、付款依据、外部重试协议、退出完成条件和账单来源权限待明确。
先核对本页业务范围及上下文边界,再细化模型、不变量、状态、命令/查询/事件和授权契约;最后派生完整业务增量 REQ。不得据本稿直接锁定开发接口。当前未决项统一归入DECISIONS对应D项;REVIEW仅保留历史审查及Q项来源,不另作活动决策台账。