去重、状态与缓存设计
建议 Key 草案
| 用途 | 示例 Key | 过期影响 |
|---|---|---|
| 来源去重 | signal:{source}:{eventID} | 到期后历史事件可能再次接收 |
| 资产归并 | asset:{chain}:{address}:{window} | 允许新的观测窗口 |
| 任务缓存 | task:{taskID} | 缓存缺失时需有明确恢复来源 |
| 元数据缓存 | metadata:{chain}:{address} | 触发重新查询 |
| 执行锁 | lock:{chain}:{account}:{intentID} | 租约到期后其他 worker 可能领取 |
这些是命名建议,不代表现有 Key。
缓存与审计
Redis 在项目中用于短周期缓存和任务状态缓存。最终交易记录不能仅依赖会过期的状态 Key;具体持久化机制未提供,应补充恢复来源、保留周期与重建方式。
一致性边界
需要原子完成的领取或状态检查可通过明确的原子操作实现。跨 Redis 与节点提交没有天然原子事务,因此必须保留可恢复的提交记录,并通过链上查询收敛结果。
验证场景
Redis 暂时不可用、Key 到期、缓存淘汰、旧值覆盖与服务恢复。明确各场景是暂停执行还是允许降级,不能把缓存读取失败视为“从未执行”。