标准答案

  1. 验证来源签名、时间窗口和事件格式,使用 provider event ID 做幂等去重;重复事件返回成功但不重复执行。
  2. 事件携带版本或序列时只接受比当前状态更新的事件;没有顺序保证时重新查询权威状态,不能按到达顺序盲目覆盖。
  3. 处理与状态更新要可重试,失败进入队列或死信并告警;对外部回调返回成功的时机要与本地持久化一致。

题目解析

幂等去重记录不能无限增长,应按供应商重放窗口和审计需求保留;超出窗口的旧事件仍需检查版本,防止状态回退。

模型回调的文本或工具结果是外部输入,入库前做 Schema、权限和状态校验。

队列保证的是投递语义,不是业务恰好执行一次;业务状态机和唯一约束才是最终防线。

常见误区

  • 只按 webhook 到达时间更新状态。
  • 收到重复事件就返回错误,触发供应商无限重试。
  • 验签通过后直接信任事件中的租户和资源归属。

作者信息