加载中...

| 模式类别 | 事件溯源相关 |
| 数据来源 | 不可变事件日志 |
| 用途 | 状态恢复、构建视图 |
| 加速手段 | 快照 |
| 关键要求 | 处理逻辑确定性 |
事件重放模式(Event Replay)是一种基于历史事件流重建系统状态的技术,它把过去发生的所有事件按原有顺序重新应用一遍,从而恢复出任意时刻的状态,或据此生成新的读模型。
在事件溯源架构中,系统的权威数据不是当前状态,而是一份完整、不可变的事件日志。事件重放正是利用这份日志的价值:只要从头或某个快照开始,把事件逐条重新交给处理逻辑执行,就能确定性地推导出对应的状态。由于事件是历史事实,重放结果可复现且可验证。
事件重放常用于灾难恢复时重建状态、为新增的查询需求构建全新的读模型、以及在测试环境中重现并调试历史上出现过的问题。当修复了某个投影逻辑的缺陷后,也可通过重放事件重新生成正确的视图。
问:事件重放会不会重新触发副作用?答:会有此风险。重放时若不加区分地执行发邮件、扣款等外部副作用会造成严重问题,因此重放通常只重建内部状态,而对外部副作用做隔离或屏蔽。
问:事件很多导致重放太慢怎么办?答:常用做法是定期保存状态快照,重放时从最近快照开始只重放其后的增量事件,从而把重放时间控制在可接受范围内。

| 模式类别 | 事件溯源相关 |
| 数据来源 | 不可变事件日志 |
| 用途 | 状态恢复、构建视图 |
| 加速手段 | 快照 |
| 关键要求 | 处理逻辑确定性 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧