ENGINEERING NOTE 20 / 50 · SMS
接码状态缓存如何避免误报完成
缓存期限应匹配生命周期敏感度。目录可以容忍的陈旧程度通常高于取消或退款结果。
本文由 OPEN RAMBO 发布。工程方案和伪代码用于说明设计,不是现有产品 API 文档;示例数字均为演示。
分离目录与订单缓存
不要把通用产品缓存策略用于活跃订单。缓存键限定已授权用户与订单,确保共享中间层不会把认证收码响应缓存给其他用户。
状态迁移时失效
取消请求成功不一定是终态取消。权威事件到达后使旧视图失效并重读版本。响应带版本或更新时间,客户端可丢弃迟到旧响应。
避免乐观显示资金完成
界面可提前禁用按钮,但账本确认前不能宣布退款完成。离线时显示最后更新时间。缓存的收码结果仅对同一授权用户展示,并遵循数据处理规则。
示意流程
if response.version < rendered.version:
discard(response)
else:
render(response.state, response.updated_at)如何验收
将旧等待响应延迟到已收码响应之后,页面不应退回等待。