面试知识

4.1.5 订单、库存、海外仓履约、同步与补偿

40-支付资金一致性与项目话术 面试知识整理。

4.1.5 订单、库存、海外仓履约、同步与补偿

本册消费 4.1.0 的事实边界,向后续面单与轨迹分册输出已出库包裹和承运商上下文;不定义轨迹排序。所有数字均为教学演练,不是 hiwi-unify(统一仓储系统)的生产指标。

1. 机制正文与面试题

源码边界:SellerOrderBusiness 有订单、库存、下游推拉与队列边界;StockBusiness 有可售库存和冻结计算;ShopOrderBusinessTaskDownloadLabel 证明店铺订单和面单任务对象存在;OrderCompensateBusinessOrderCompensateTaskRetryZeroInventorySyncTask 是 hiwi-unify(统一仓储系统)的补偿与库存同步对象。完整生产调用链、阈值、频率和状态机待源码或现场核对。

已只读核对的实际路径为:/Users/Lever/IdeaProjects/work/hop-java/ruoyi-hop/src/main/kotlin/com/ruoyi/hop/business/SellerOrderBusiness.kt/Users/Lever/IdeaProjects/work/hop-java/ruoyi-hop/src/main/kotlin/com/ruoyi/hop/business/StockBusiness.kt/Users/Lever/IdeaProjects/work/hop-java/ruoyi-hop/src/main/kotlin/com/ruoyi/hop/business/s2s/ShopOrderBusiness.kt/Users/Lever/IdeaProjects/work/hop-java/ruoyi-hop/src/main/kotlin/com/ruoyi/hop/domain/TaskDownloadLabel.java/Users/Lever/IdeaProjects/work/hiwi-unify/hiwi-java/ruoyi-hiwi/src/main/java/com/ruoyi/hiwi/business/OrderCompensateBusiness.kt/Users/Lever/IdeaProjects/work/hiwi-unify/hiwi-java/ruoyi-hiwi/src/main/java/com/ruoyi/hiwi/task/OrderCompensateTask.kt/Users/Lever/IdeaProjects/work/hiwi-unify/hiwi-java/ruoyi-hiwi/src/main/java/com/ruoyi/hiwi/task/RetryZeroInventorySyncTask.kt。路径和类名仅作代码证据,不扩展为未证实的线上结论。

1.1 订单对象与状态边界

客户订单表达客户承诺,履约订单表达仓内执行,仓库订单表达外部仓请求,包裹表达实际装箱。它们的权威状态不同,本地创建不是受理,受理不是出库,出库也不是签收。拆分、合并、分仓与多包裹必须保存父子关系、行项目映射和版本。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
sequenceDiagram
participant O as OMS(订单管理系统)
participant I as 库存服务
participant P as 仓 Port(端口接口)
participant W as 海外仓
O->>I: 条件预占与版本校验
I-->>O: reservationNo 或拒绝
O->>P: 通过 Outbox(发件箱)投递
P->>W: 稳定请求号调用
alt 结果未知
W--x O: 超时
O->>P: 查询优先,不直接重建
else 已受理或出库
W-->>O: 外部单或出库事实
end

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么订单对象与状态边界必须以状态机和证据链实现? 考点:订单对象与状态边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:订单对象与状态边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么订单对象与状态边界中的并发与重试必须以状态机和证据链实现? 考点:订单对象与状态边界中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:订单对象与状态边界中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么订单对象与状态边界的项目证据边界必须以状态机和证据链实现? 考点:订单对象与状态边界的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:订单对象与状态边界的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 1

5 件拆 A3/B2,A 失败只释放 3,数量守恒。

1.2 路由、分仓、拆单与多包裹

路由综合可售、地址、禁运、服务能力、时效和成本;距离仅是候选特征。决策输入和规则版本化后,再原子预占并拆履约单。多包裹须由实际装箱或出库事实回写,不应在创建履约时假定箱数。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
sequenceDiagram
participant O as OMS(订单管理系统)
participant I as 库存服务
participant P as 仓 Port(端口接口)
participant W as 海外仓
O->>I: 条件预占与版本校验
I-->>O: reservationNo 或拒绝
O->>P: 通过 Outbox(发件箱)投递
P->>W: 稳定请求号调用
alt 结果未知
W--x O: 超时
O->>P: 查询优先,不直接重建
else 已受理或出库
W-->>O: 外部单或出库事实
end

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么路由、分仓、拆单与多包裹必须以状态机和证据链实现? 考点:路由、分仓、拆单与多包裹、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:路由、分仓、拆单与多包裹不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么路由、分仓、拆单与多包裹中的并发与重试必须以状态机和证据链实现? 考点:路由、分仓、拆单与多包裹中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:路由、分仓、拆单与多包裹中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么路由、分仓、拆单与多包裹的项目证据边界必须以状态机和证据链实现? 考点:路由、分仓、拆单与多包裹的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:路由、分仓、拆单与多包裹的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 2

重放读取原拆分版本,不再分配。

1.3 库存可售公式与预占

教学可售公式为 max(最大值)(0,实存减有效预占减不可售调整)。StockBusiness.getStockCanSell 可见实存减冻结并收敛展示负值;批次、质检和库位规则待源码或现场核对。预占、分配、扣减与释放都要有唯一流水。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
sequenceDiagram
participant O as OMS(订单管理系统)
participant I as 库存服务
participant P as 仓 Port(端口接口)
participant W as 海外仓
O->>I: 条件预占与版本校验
I-->>O: reservationNo 或拒绝
O->>P: 通过 Outbox(发件箱)投递
P->>W: 稳定请求号调用
alt 结果未知
W--x O: 超时
O->>P: 查询优先,不直接重建
else 已受理或出库
W-->>O: 外部单或出库事实
end

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么库存可售公式与预占必须以状态机和证据链实现? 考点:库存可售公式与预占、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:库存可售公式与预占不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么库存可售公式与预占中的并发与重试必须以状态机和证据链实现? 考点:库存可售公式与预占中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:库存可售公式与预占中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么库存可售公式与预占的项目证据边界必须以状态机和证据链实现? 考点:库存可售公式与预占的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:库存可售公式与预占的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 3

实存 10、预占 4、两单各要 4,第二单条件更新失败。

1.4 分配、扣减、释放与取消竞争

预占代表承诺,分配绑定履约行,可信出库事实才允许扣减,明确取消或失败才允许释放。取消与出库并发时,由状态版本、合法迁移和唯一流水裁决;锁只能减压,不能覆盖海外仓已发生的物理动作。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
sequenceDiagram
participant O as OMS(订单管理系统)
participant I as 库存服务
participant P as 仓 Port(端口接口)
participant W as 海外仓
O->>I: 条件预占与版本校验
I-->>O: reservationNo 或拒绝
O->>P: 通过 Outbox(发件箱)投递
P->>W: 稳定请求号调用
alt 结果未知
W--x O: 超时
O->>P: 查询优先,不直接重建
else 已受理或出库
W-->>O: 外部单或出库事实
end

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么分配、扣减、释放与取消竞争必须以状态机和证据链实现? 考点:分配、扣减、释放与取消竞争、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:分配、扣减、释放与取消竞争不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么分配、扣减、释放与取消竞争中的并发与重试必须以状态机和证据链实现? 考点:分配、扣减、释放与取消竞争中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:分配、扣减、释放与取消竞争中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么分配、扣减、释放与取消竞争的项目证据边界必须以状态机和证据链实现? 考点:分配、扣减、释放与取消竞争的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:分配、扣减、释放与取消竞争的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 4

出库 3 先成立,取消仅释放剩余 2。

1.5 Port(端口接口)、Adapter(适配器)与防腐层

OMS(订单管理系统)依赖创建、取消、查询、同步和包裹读取等稳定能力。Port(端口接口)定义契约,Adapter(适配器)处理协议,Anti-Corruption Layer(防腐层)将外部结果映射为受理、明确失败或未知,并保存脱敏摘要。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
sequenceDiagram
participant O as OMS(订单管理系统)
participant I as 库存服务
participant P as 仓 Port(端口接口)
participant W as 海外仓
O->>I: 条件预占与版本校验
I-->>O: reservationNo 或拒绝
O->>P: 通过 Outbox(发件箱)投递
P->>W: 稳定请求号调用
alt 结果未知
W--x O: 超时
O->>P: 查询优先,不直接重建
else 已受理或出库
W-->>O: 外部单或出库事实
end

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么Port(端口接口)、Adapter(适配器)与防腐层必须以状态机和证据链实现? 考点:Port(端口接口)、Adapter(适配器)与防腐层、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Port(端口接口)、Adapter(适配器)与防腐层不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么Port(端口接口)、Adapter(适配器)与防腐层中的并发与重试必须以状态机和证据链实现? 考点:Port(端口接口)、Adapter(适配器)与防腐层中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Port(端口接口)、Adapter(适配器)与防腐层中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么Port(端口接口)、Adapter(适配器)与防腐层的项目证据边界必须以状态机和证据链实现? 考点:Port(端口接口)、Adapter(适配器)与防腐层的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Port(端口接口)、Adapter(适配器)与防腐层的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 5

地址非法释放,限流退避,超时未知先查单。

1.6 下游创建未知态:先查单再重试

创建超时只表示调用方未收到响应。首次调用前持久化稳定请求号;超时记录未知、摘要与查单任务;查到则绑定,明确不存在且预算允许才重试,查询再失败仍是未知而非重建授权。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
sequenceDiagram
participant O as OMS(订单管理系统)
participant I as 库存服务
participant P as 仓 Port(端口接口)
participant W as 海外仓
O->>I: 条件预占与版本校验
I-->>O: reservationNo 或拒绝
O->>P: 通过 Outbox(发件箱)投递
P->>W: 稳定请求号调用
alt 结果未知
W--x O: 超时
O->>P: 查询优先,不直接重建
else 已受理或出库
W-->>O: 外部单或出库事实
end

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么下游创建未知态:先查单再重试必须以状态机和证据链实现? 考点:下游创建未知态:先查单再重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:下游创建未知态:先查单再重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么下游创建未知态:先查单再重试中的并发与重试必须以状态机和证据链实现? 考点:下游创建未知态:先查单再重试中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:下游创建未知态:先查单再重试中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么下游创建未知态:先查单再重试的项目证据边界必须以状态机和证据链实现? 考点:下游创建未知态:先查单再重试的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:下游创建未知态:先查单再重试的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 6

R-88 超时后查到 W-900,只绑定不重建。

1.7 Saga(长事务编排)与补偿边界

订单、库存和海外仓不共享单一事务,Saga(长事务编排)记录正向步骤、补偿动作、不可逆点和证据。已出库或物理交接后不能反向加库存,应转售后、费用差异或人工处置。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
sequenceDiagram
participant O as OMS(订单管理系统)
participant I as 库存服务
participant P as 仓 Port(端口接口)
participant W as 海外仓
O->>I: 条件预占与版本校验
I-->>O: reservationNo 或拒绝
O->>P: 通过 Outbox(发件箱)投递
P->>W: 稳定请求号调用
alt 结果未知
W--x O: 超时
O->>P: 查询优先,不直接重建
else 已受理或出库
W-->>O: 外部单或出库事实
end

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么Saga(长事务编排)与补偿边界必须以状态机和证据链实现? 考点:Saga(长事务编排)与补偿边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Saga(长事务编排)与补偿边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么Saga(长事务编排)与补偿边界中的并发与重试必须以状态机和证据链实现? 考点:Saga(长事务编排)与补偿边界中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Saga(长事务编排)与补偿边界中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么Saga(长事务编排)与补偿边界的项目证据边界必须以状态机和证据链实现? 考点:Saga(长事务编排)与补偿边界的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Saga(长事务编排)与补偿边界的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 7

S7 按步骤键释放一次,已出库则转售后。

1.8 Outbox(发件箱)、Inbox(收件箱)与幂等事件

Outbox(发件箱)让履约状态、库存流水与待投递事件同事务落库;Inbox(收件箱)记录已处理事件。它们仍需事件键、业务键、版本和条件更新,才能处理重复、乱序与重放。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
sequenceDiagram
participant O as OMS(订单管理系统)
participant I as 库存服务
participant P as 仓 Port(端口接口)
participant W as 海外仓
O->>I: 条件预占与版本校验
I-->>O: reservationNo 或拒绝
O->>P: 通过 Outbox(发件箱)投递
P->>W: 稳定请求号调用
alt 结果未知
W--x O: 超时
O->>P: 查询优先,不直接重建
else 已受理或出库
W-->>O: 外部单或出库事实
end

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么Outbox(发件箱)、Inbox(收件箱)与幂等事件必须以状态机和证据链实现? 考点:Outbox(发件箱)、Inbox(收件箱)与幂等事件、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Outbox(发件箱)、Inbox(收件箱)与幂等事件不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么Outbox(发件箱)、Inbox(收件箱)与幂等事件中的并发与重试必须以状态机和证据链实现? 考点:Outbox(发件箱)、Inbox(收件箱)与幂等事件中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Outbox(发件箱)、Inbox(收件箱)与幂等事件中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么Outbox(发件箱)、Inbox(收件箱)与幂等事件的项目证据边界必须以状态机和证据链实现? 考点:Outbox(发件箱)、Inbox(收件箱)与幂等事件的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:Outbox(发件箱)、Inbox(收件箱)与幂等事件的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 8

E2 重投被 Inbox(收件箱)去重。

1.9 重试预算、死信与人工接管

重试只服务暂态恢复。预算应限制次数、最大年龄、单仓并发、错误类别和下一次时间。死信队列保存订单、仓、请求号、库存动作、尝试史与建议动作,人工操作可审计。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
flowchart TD
A8[变化、失败或差异] --> B8[保存版本、请求号与摘要]
B8 --> C8{事实明确?}
C8 -- 是 --> D8[条件更新和唯一流水]
C8 -- 否 --> E8[查单、回放或人工接管]
D8 --> F8[校验不变量]
E8 --> F8

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么重试预算、死信与人工接管必须以状态机和证据链实现? 考点:重试预算、死信与人工接管、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:重试预算、死信与人工接管不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么重试预算、死信与人工接管中的并发与重试必须以状态机和证据链实现? 考点:重试预算、死信与人工接管中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:重试预算、死信与人工接管中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么重试预算、死信与人工接管的项目证据边界必须以状态机和证据链实现? 考点:重试预算、死信与人工接管的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:重试预算、死信与人工接管的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 9

预算耗尽转 死信队列且保留预占。

1.10 海外仓限流、批次、背压与隔离

批次是传输优化而非业务原子性,每条仍要有请求号和独立结果。Backpressure(背压)按水位、等待年龄和失败率触发,优先保护创建、查单与出库确认;按仓隔离队列、并发、连接和熔断。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
flowchart TD
A9[变化、失败或差异] --> B9[保存版本、请求号与摘要]
B9 --> C9{事实明确?}
C9 -- 是 --> D9[条件更新和唯一流水]
C9 -- 否 --> E9[查单、回放或人工接管]
D9 --> F9[校验不变量]
E9 --> F9

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么海外仓限流、批次、背压与隔离必须以状态机和证据链实现? 考点:海外仓限流、批次、背压与隔离、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:海外仓限流、批次、背压与隔离不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么海外仓限流、批次、背压与隔离中的并发与重试必须以状态机和证据链实现? 考点:海外仓限流、批次、背压与隔离中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:海外仓限流、批次、背压与隔离中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么海外仓限流、批次、背压与隔离的项目证据边界必须以状态机和证据链实现? 考点:海外仓限流、批次、背压与隔离的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:海外仓限流、批次、背压与隔离的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 10

限流时保留创建查单配额,暂停全量同步。

1.11 增量同步、水位、版本与删除语义

增量同步用水位、版本或变更标识,全量用于校验、补洞和重建。投影成功后才推进水位;版本阻止迟到数据倒退;删除需要 tombstone(删除标记)或失效语义,查不到不等于可删除。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
flowchart TD
A10[变化、失败或差异] --> B10[保存版本、请求号与摘要]
B10 --> C10{事实明确?}
C10 -- 是 --> D10[条件更新和唯一流水]
C10 -- 否 --> E10[查单、回放或人工接管]
D10 --> F10[校验不变量]
E10 --> F10

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么增量同步、水位、版本与删除语义必须以状态机和证据链实现? 考点:增量同步、水位、版本与删除语义、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:增量同步、水位、版本与删除语义不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么增量同步、水位、版本与删除语义中的并发与重试必须以状态机和证据链实现? 考点:增量同步、水位、版本与删除语义中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:增量同步、水位、版本与删除语义中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么增量同步、水位、版本与删除语义的项目证据边界必须以状态机和证据链实现? 考点:增量同步、水位、版本与删除语义的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:增量同步、水位、版本与删除语义的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 11

迟到版本 18 不覆盖本地 20,成功后推进水位。

1.12 校验和、回放与账实不符恢复

任务成功率不等于同步正确。按仓、SKU(库存单位)或时间分片核对数量、版本、事件数与摘要;差异先保存快照,再回放、分片重拉或人工盘点。回放复用原事件和业务键,不能重建仓单。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
flowchart TD
A11[变化、失败或差异] --> B11[保存版本、请求号与摘要]
B11 --> C11{事实明确?}
C11 -- 是 --> D11[条件更新和唯一流水]
C11 -- 否 --> E11[查单、回放或人工接管]
D11 --> F11[校验不变量]
E11 --> F11

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么校验和、回放与账实不符恢复必须以状态机和证据链实现? 考点:校验和、回放与账实不符恢复、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:校验和、回放与账实不符恢复不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么校验和、回放与账实不符恢复中的并发与重试必须以状态机和证据链实现? 考点:校验和、回放与账实不符恢复中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:校验和、回放与账实不符恢复中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么校验和、回放与账实不符恢复的项目证据边界必须以状态机和证据链实现? 考点:校验和、回放与账实不符恢复的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:校验和、回放与账实不符恢复的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 12

预占差 2 先查未知任务,不直接释放。

1.13 费用、异常任务与履约对账

费用最终事实不应早于包裹或仓单事实。预估与实际费用分开留存并关联履约、包裹、仓单和版本;异常任务记录未知、差异、失败、负责人和恢复证据。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
flowchart TD
A12[变化、失败或差异] --> B12[保存版本、请求号与摘要]
B12 --> C12{事实明确?}
C12 -- 是 --> D12[条件更新和唯一流水]
C12 -- 否 --> E12[查单、回放或人工接管]
D12 --> F12[校验不变量]
E12 --> F12

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么费用、异常任务与履约对账必须以状态机和证据链实现? 考点:费用、异常任务与履约对账、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:费用、异常任务与履约对账不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么费用、异常任务与履约对账中的并发与重试必须以状态机和证据链实现? 考点:费用、异常任务与履约对账中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:费用、异常任务与履约对账中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么费用、异常任务与履约对账的项目证据边界必须以状态机和证据链实现? 考点:费用、异常任务与履约对账的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:费用、异常任务与履约对账的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 13

实际费用与预估差异建异常并按费用项去重。

1.14 线上排查:库存负数、重复仓单与未知创建

排查先从现象、范围与快照开始,再止血、查流水、回放和验证。库存负数先区分可售、实存、预占与扣减;重复仓单按请求号、客户单与外部单关联;未知创建坚持先查单。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
flowchart TD
A13[变化、失败或差异] --> B13[保存版本、请求号与摘要]
B13 --> C13{事实明确?}
C13 -- 是 --> D13[条件更新和唯一流水]
C13 -- 否 --> E13[查单、回放或人工接管]
D13 --> F13[校验不变量]
E13 --> F13

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么线上排查:库存负数、重复仓单与未知创建必须以状态机和证据链实现? 考点:线上排查:库存负数、重复仓单与未知创建、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:线上排查:库存负数、重复仓单与未知创建不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么线上排查:库存负数、重复仓单与未知创建中的并发与重试必须以状态机和证据链实现? 考点:线上排查:库存负数、重复仓单与未知创建中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:线上排查:库存负数、重复仓单与未知创建中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么线上排查:库存负数、重复仓单与未知创建的项目证据边界必须以状态机和证据链实现? 考点:线上排查:库存负数、重复仓单与未知创建的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:线上排查:库存负数、重复仓单与未知创建的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

数据演绎 14

可售负数先隔离,修正扣减仍被算作预占的投影。

1.15 项目话术、复习清单与边界

项目表达按订单分层、库存预占、仓适配、未知查单、Outbox(发件箱)/Inbox(收件箱)、出库扣减、预算隔离和人工接管串讲。已核对的业务类与任务对象只证明局部边界,生产阈值与完整状态迁移待源码或现场核对。

维度事实业务键约束
业务对象订单、库存、仓、包裹业务号分层建模
并发控制条件更新与版本version失败重读
外部调用受理、失败、未知requestNo未知先查单
恢复任务重试、回放、人工eventId唯一流水
flowchart TD
A14[变化、失败或差异] --> B14[保存版本、请求号与摘要]
B14 --> C14{事实明确?}
C14 -- 是 --> D14[条件更新和唯一流水]
C14 -- 否 --> E14[查单、回放或人工接管]
D14 --> F14[校验不变量]
E14 --> F14

图中订单、库存、Outbox(发件箱)、仓 Port(端口接口)、海外仓、查单、包裹、补偿和失败恢复以同一业务键串联;未知态不被压成失败。

热门面试题

  1. 问题:为什么项目话术、复习清单与边界必须以状态机和证据链实现? 考点:项目话术、复习清单与边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:项目话术、复习清单与边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  2. 问题:为什么项目话术、复习清单与边界中的并发与重试必须以状态机和证据链实现? 考点:项目话术、复习清单与边界中的并发与重试、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:项目话术、复习清单与边界中的并发与重试不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

  3. 问题:为什么项目话术、复习清单与边界的项目证据边界必须以状态机和证据链实现? 考点:项目话术、复习清单与边界的项目证据边界、幂等、故障恢复。 回答思路:先区分权威事实,再说明并发与未知态,最后说明恢复和审计。 详细答案:项目话术、复习清单与边界的项目证据边界不能只靠一次成功路径。应以客户订单、履约订单、仓库订单、包裹和异常任务分层保存,库存变化以预占、分配、扣减、释放的唯一流水解释,并通过条件更新或版本防止并发覆盖。外部创建超时保留稳定请求号、脱敏响应、事件键和查单记录,先查单再决定是否在预算内重试;明确失败才释放,已出库等不可逆事实转异常或人工。这样重复消息、任务重启和迟到回调都能收敛为同一结论。 进阶追问:哪些内容要标待源码或现场核对? 进阶回答:生产阈值、频率、完整状态迁移、审批与线上指标;已见的类、任务和字段只作为对象边界证据。

综合题库前的结构分界

2. 订单-库存-仓库正式图

订单库存海外仓 Saga(长事务编排)

正式 PlantUML(开源建模工具)图显示:库存先预占;本地状态和 Outbox(发件箱)同事务;海外仓未知创建先查单;可信出库后转扣减;失败由补偿、校验或人工接管恢复。

stateDiagram-v2
    [*] --> 待预占
    待预占 --> 下发中: 条件预占成功
    下发中 --> 已受理: 查单或回调确认
    下发中 --> 未知: 超时或响应丢失
    未知 --> 已受理: 查到仓单
    未知 --> 待人工: 预算耗尽
    下发中 --> 已取消: 明确失败后释放
    已受理 --> 已出库: 可信出库事实
    已出库 --> [*]

该状态图把未知态与明确失败分开,避免在下游可能已创建仓单时错误释放库存。

flowchart LR
    A[源仓增量] --> B[版本条件写入]
    B --> C[水位提交]
    C --> D[分片校验和]
    D --> E{差异?}
    E -- 否 --> F[继续增量]
    E -- 是 --> G[回放或重拉]
    G --> H[账实核验与异常任务]

该恢复图要求水位只在投影成功后推进,差异以回放、重拉和证据核验收敛,不能直接覆盖本地状态。

3. 综合题库

  1. 问题:请设计并排查一次海外仓履约,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对海外仓履约,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次库存防超卖,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对库存防超卖,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次重复仓单,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对重复仓单,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次取消与出库竞争,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对取消与出库竞争,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次同步倒退,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对同步倒退,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次积压限流,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对积压限流,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次费用异常,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对费用异常,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次海外仓履约,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对海外仓履约,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次库存防超卖,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对库存防超卖,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次重复仓单,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对重复仓单,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次取消与出库竞争,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对取消与出库竞争,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次同步倒退,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对同步倒退,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次积压限流,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对积压限流,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次费用异常,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对费用异常,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次海外仓履约,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对海外仓履约,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次库存防超卖,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对库存防超卖,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次重复仓单,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对重复仓单,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次取消与出库竞争,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对取消与出库竞争,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次同步倒退,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对同步倒退,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次积压限流,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对积压限流,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次费用异常,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对费用异常,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次海外仓履约,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对海外仓履约,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次库存防超卖,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对库存防超卖,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次重复仓单,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对重复仓单,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次取消与出库竞争,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对取消与出库竞争,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次同步倒退,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对同步倒退,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次积压限流,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对积压限流,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次费用异常,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对费用异常,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次海外仓履约,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对海外仓履约,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次库存防超卖,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对库存防超卖,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次重复仓单,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对重复仓单,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次取消与出库竞争,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对取消与出库竞争,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次同步倒退,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对同步倒退,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次积压限流,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对积压限流,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界
  1. 问题:请设计并排查一次费用异常,说明状态、库存、外部调用、重试与人工边界。
  • 口述答案:面对费用异常,我先划分客户订单、履约订单、仓库订单、包裹和异常任务的权威状态,避免将外部响应直接当成履约完成。库存以可售、预占、分配、扣减、释放流水解释数量,并用条件更新与版本防并发覆盖,同一逻辑操作复用稳定请求号。外部调用按受理、明确失败和未知分类:超时、响应丢失或无法解析进入未知态,保留脱敏请求响应、事件键、查单历史和下一次动作,先查单再决定重试。履约状态、库存流水与 Outbox(发件箱)同事务提交,消费端用 Inbox(收件箱)、业务键和状态条件更新抵抗重复与乱序。重试受次数、最大年龄、单仓并发和错误类别的预算约束,耗尽后将订单、仓、请求号、库存动作、尝试史和建议动作写入 死信队列并人工接管。已出库是不可逆事实,不能为了让本地状态整齐而释放库存,应转售后、差异或人工核验。排查时先隔离可能超卖的 SKU(库存单位)或暂停问题仓重试,保存源仓快照、库存流水、Outbox(发件箱)、Inbox(收件箱)和同步水位,再按证据回放或对账。同时保留每次处理的输入版本、规则版本、原始事件摘要和人工决策,恢复结束后重算数量守恒、请求号唯一性和状态迁移,确认没有重复仓单、负可售或账实差异;证据不足时不自动释放,而是等待核验结论。并在恢复后以仓、SKU(库存单位)、履约版本分片复核源仓快照和本地投影,确认差异已闭环,再解除隔离与恢复正常调度。
  • 追问与直答:1. 超时能重建吗?不能,先查单。2. 何时扣减?可信出库后。3. 重复消息怎么处理?事件键、流水和状态条件。4. 预算耗尽怎么办?人工并保留证据。
  • 真实相对锚点订单边界库存预占未知创建补偿边界

4. 本册复习清单

  • 区分客户订单、履约订单、仓库订单与包裹,不把受理说成出库。
  • 能讲可售、预占、扣减、释放、条件更新和唯一流水。
  • 能讲未知态、查询优先、Saga(长事务编排)、Outbox(发件箱)、Inbox(收件箱)、预算与人工边界。
  • 能排查库存负数、重复仓单、重复补偿、同步倒退、积压与账实不符。