首页/开发/系统分析与架构设计速查/事件溯源(Event Sourcing)
架构风格与模式58 条

事件溯源(Event Sourcing)

以事件序列作为状态的事实来源,当前状态由事件重放得到;配合快照控制重放成本,事件需版本化并可兼容演进。

存储只追加的事件日志(append-only)
快照定期保存聚合状态,缩短重建时间
收益完整审计轨迹、可重建任意时点状态、天然支持事件驱动

工程要点

主题做法
快照每 N 个事件或按体积触发,控制重建时长
版本化事件 schema 带版本字段,升级后可读旧事件
读侧查询走投影或读模型,不扫描事件流
归档冷事件转储到对象存储,保留回放能力
事件一旦发布即成为契约;修改历史事件语义需要版本化与迁移策略,不能直接改旧数据。

易错点

  • 把事件溯源当通用审计日志,未考虑重建性能与事件演进
  • 查询直接扫描事件流,读性能随历史增长恶化

数据来源与参考

  • Martin Fowler bliki《Event Sourcing》
  • Greg Young 相关文献
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌