DM-09|外部渠道协作领域模型
状态:working-draft;候选模型,不是已锁定的结构或状态契约。
上游:BC-09;输入:旧聚合材料(历史材料保留在docs_bak/)。
编写:主会话;业务决策与长期维护人:待指定。日期:2026-09-18。
1. 对象分类与候选聚合
| 对象 | 分类 | 维护什么 | 要保护的业务含义 |
|---|---|---|---|
| ChannelAccount | 候选根 | 渠道授权与能力版本 | 账号范围明确,认证不替代业务权限 |
| Binding | 候选根 | 外部对象与内部版本映射 | 唯一性包含 Provider 与渠道账号范围 |
| ExternalObservation | 不可变观察 | 原始来源与接受时间 | 不等于内部业务事实 |
| ExternalOrderImport | 协调流程对象 | 校验、Owner 动作、冲突和关联结果 | 稳定来源身份不因重试变化 |
| OutboundAction | 候选根/流程对象 | 一次外部业务目标与尝试 | UNKNOWN 查询原目标 |
| Statement / Difference | 来源观察 / 差异对象 | 外部账单与核对结果 | 不直接成为已验证资金事实 |
| ExitCase | 候选流程对象 | 停新动作、凭证撤销与队列处理 | 退出不删除历史引用 |
“候选根”表示需要独立身份、生命周期及一致性责任的提案,不代表每行已经确定为一个事务。历史、子实体、值对象及集合的最终边界还需基于规模和不变量核对。
2. 关系与引用
观察关联渠道账号、外部对象和版本;绑定引用内部类型化 ID;Import按已接受的购买拆分范围关联各自唯一的内部订单结果,不能以“唯一”强制一外部来源只能一张内部订单,也不能按重试另造一组订单。具体外部拆分/回传能力须由Provider合同明确,不自动套用所有渠道。一次出站目标可有多次技术尝试,不能每次超时生成新的业务目标。
值对象及共享引用的统一含义见 MODELING-RULES。上下文之间引用 ID、版本或不可变快照,不共享可变实体。
3. 生命周期
账号授权、受限、撤销分开;导入观察、校验、冲突、Owner 处理中、完成分开;出站受理、处理中、未知、已验证终点分开;回调乱序不能回退终点。
这些是语义级路径,尚未列全每种政策下的迁移;不能直接生成生产枚举。业务对象状态、协调进度和技术回执分别保存与展示。
4. 业务动作与事件
渠道运营授权绑定和处置差异;受限 Worker 同步;外部系统发送经过验证的观察。事件候选:“外部订单已观察”“导入已完成”“出站结果已核验”。
事件名称为中文业务语义候选,不新建机器事件名。进入后续契约设计时逐项确定输入、前置条件、结果、错误和受众。
5. 强一致性及并发边界
源身份应包含 provider/channel account/业务对象类型/外部号等必要作用域;不能仅凭外部订单号去重。内部建单唯一性由 Commerce 同时保护;回调 Inbox 去重不代替导入业务幂等。
共同约束见 CONSISTENCY:单根版本不能替代跨对象约束;如需同 BC 多根本地事务,必须明确保护范围与理由,不能默认为整个 BC 一把锁。
6. 反例、未知与下一步
两个渠道店铺相同订单号、重复不同事件、退出时在途回传、映射更新中导入。具体渠道语义、回执和账单验证规则待定。
上述反例是设计验证目标,尚未执行产品测试。先关闭影响边界的不确定性,再完善动作级迁移表及精确模型。身份、权限与业务状态的联动仍遵守 07 的统一授权接缝,不在本页复制一套权限规则。
7. 交易严谨性补充(2026-09-29)
外部终态被相反证据挑战时,追加原始观察并形成差异核验,不直接翻转内部订单或已核实资金终态。出站目标 UNKNOWN 时查原目标;新尝试不应改变业务目标或逃避额度守卫。退出不能丢弃在途义务;需明确退出后的受限查询/恢复凭据。支付 Provider 的协议适配归 Commerce,销售渠道防腐仍归 Channel,不因共享网络设施合并资金事实权威。
共用不变量、反例与恢复主讲见TRANSACTION-INTEGRITY。本节是设计约束,不证明本域实现或全部状态契约完成。