27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
---
|
||
title: "Event Sourcing"
|
||
type: concept
|
||
tags: [architecture, event-driven, state-management]
|
||
---
|
||
|
||
## Summary
|
||
Event Sourcing(事件溯源)是一种软件架构模式,通过存储所有状态变更事件而非仅存储当前状态来重建系统历史。
|
||
|
||
## Definition
|
||
事件溯源将应用状态的所有变更存储为一系列不可变的事件对象。通过重放这些事件,可以重建任意时间点的系统状态。
|
||
|
||
## Key Principles
|
||
- **事件即事实**:状态变更以事件形式持久化,而非覆盖最终状态
|
||
- **完整审计日志**:天然具备完整的审计追踪能力
|
||
- **时间旅行调试**:可以重放事件序列重现历史状态
|
||
- **解耦读写**:写操作存储事件,读操作通过事件投影计算状态
|
||
|
||
## Relationship to Project State Management
|
||
Project State Management 系统将 Event Sourcing 模式应用于项目管理:
|
||
- 每个项目事件(progress、blocker、decision、pivot)作为不可变事件存储
|
||
- 项目当前状态通过事件投影计算
|
||
- 决策上下文通过查询事件历史恢复
|
||
|
||
## External Links
|
||
- [Event Sourcing Pattern - Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html)
|