幂等与准入
Tentarc 实现的是准入幂等(admission idempotency):
- 去重发生在执行前
- 防止重试/重复提交导致副作用重复
- 不是结果缓存语义
准入契约
每个请求的准入流程:
- 规范化幂等键(
idempotency key) - 检查重复窗口
- 接纳或拒绝
- 记住准入结果用于重放安全
伪流程:
normalizeKey -> isDuplicate? -> reject_duplicate
\-> rememberAdmission -> enqueue_execution
解决的典型重复场景
- 用户双击发送
- 超时后的自动重试
- 多窗口同操作并发提交
- IPC/网络抖动后的重复恢复提交
实现建议
- 幂等键需包含工作区 + 实例 + 逻辑用户动作
- 去重范围要精准,避免误伤合法请求
- 保留时长要覆盖重试时间窗
非目标
幂等不等于“回答文本一致”。
幂等保证的是“同一副作用不被执行两次”。