事件溯源(Event Sourcing)是一种通过记录系统状态变化的事件序列来存储数据的架构模式。其核心思想是:用事件解释状态,而非直接存储状态本身。以下是关键概念解析:


1. 事件(Event)

  • 事件是系统中发生的不可变事实,如 用户注册订单支付成功
  • 每个事件包含:类型时间戳数据载荷元数据(如用户ID)
  • 📎 示例:订单_创建 事件记录了订单的初始信息
事件溯源_核心概念

2. 事件流(Event Stream)

  • 事件流是按时间顺序排列的事件集合,反映业务的全貌
  • 通过流处理技术(如Kafka、RabbitMQ)实现事件的实时传输
  • 🔍 扩展阅读:事件溯源_实现原理

3. 持久化存储(Persistence)

  • 事件存储需支持高效写入与查询,常见方案:
    • 事件数据库(如CQRS + Event Store)
    • 日志文件(如Apache Kafka)
  • ⚙️ 事件存储架构设计需考虑:数据一致性、并发控制、事件检索效率
事件流_架构

4. 重建状态(Replay)

  • 通过重放事件流可还原系统当前状态
  • 常用于审计、调试、数据迁移等场景
  • 📌 事件溯源的核心价值:历史可追溯,状态可重建

5. 与传统数据库的区别

特性 事件溯源 传统数据库
数据存储方式 事件序列(Event Log) 当前状态(Snapshot)
读取效率 低(需重构状态) 高(直接查询)
写入效率 高(追加事件) 高(直接更新)
数据一致性 通过事件顺序保证 通过事务保证
事件溯源_对比

📌 深入实践事件溯源_应用案例 为您展示如何在实际业务中落地事件溯源。