---
url: /zh/guide/domain.md
description: 从首次建模、历史演进或恢复性能三条路径进入 Wow 的聚合、事件历史与快照。
---

# 领域模型

Wow 的领域模型以聚合为一致性边界：命令侧根据当前状态作出决定，状态侧只通过领域事件演进，EventStore 中的事件流保存权威历史，快照只加速最新状态恢复。

本区域只回答领域边界、状态演进、历史兼容和恢复成本。完整 Gateway、Dispatcher、Filter 与等待阶段属于[命令处理管线](../command/internals/pipeline.md)，不在领域模型中展开。

下面的能力地图展示领域模型各页怎样从聚合边界展开。

```mermaid
flowchart TB
    Start["从领域边界开始"] --> Aggregate["聚合与不变量"]
    Aggregate --> History["事件溯源：权威历史"]
    History --> Evolution["事件演进：长期兼容"]
    History --> Snapshot["快照：恢复优化"]
    Aggregate --> Lifecycle["聚合生命周期"]
    Aggregate --> Command["定义命令"]
```

## 选择阅读路径

### 首次建模

1. 阅读[聚合与不变量](./aggregate.md)，写清聚合身份、业务不变量和允许的状态转换。
2. 阅读[事件溯源](./event-sourcing.md)，确认事件流是权威历史，状态演进可确定性重放。
3. 阅读[聚合生命周期](./lifecycle.md)，确认创建、恢复、删除与并发边界。

**完成标志：** 每条业务意图都有明确的成功事件或拒绝结果；相同初始状态与事件顺序得到相同状态。

**主要下一步：** [定义命令](../command/definition.md)，把业务意图映射为目标聚合和处理函数。

### 历史演进

1. 先用[事件溯源](./event-sourcing.md)确认当前事件流、revision 分布和恢复边界。
2. 再用[事件演进](./event-evolution.md)设计单步 Upgrader、升级顺序和字段兼容。
3. 用[聚合生命周期](./lifecycle.md)验证旧事件重放后的版本、元数据与业务状态。

**完成标志：** 所有仍存在的历史 revision 都能升级并重放到当前状态，关键业务不变量与下游结果已有验证。

**主要下一步：** 用脱敏真实历史样本执行完整回放，并保留可重复运行的验证入口。

### 恢复性能

1. 从[事件溯源](./event-sourcing.md)测量最新状态恢复需要重放的事件数量与耗时。
2. 阅读[快照](../domain/snapshot.md)，只在已有性能证据时选择快照策略和存储实现。
3. 用[聚合生命周期](./lifecycle.md)确认最新恢复与历史时间点恢复没有混用快照。

**完成标志：** 所选策略满足可量化的恢复目标，且快照丢失或过期时仍可从权威事件历史重建。

**主要下一步：** 对真实聚合历史运行恢复基准，并验证所选 SnapshotStore 的单调保存契约。

## 页面职责

| 页面 | 回答的问题 |
| --- | --- |
| [聚合与不变量](./aggregate.md) | 一致性边界、身份和业务规则如何建模？ |
| [事件溯源](./event-sourcing.md) | 哪些历史是权威的，状态如何确定性恢复？ |
| [快照](../domain/snapshot.md) | 何时以可替换检查点优化最新状态恢复？ |
| [事件演进](./event-evolution.md) | 持久事件 Schema 变化如何兼容旧历史？ |
| [聚合生命周期](./lifecycle.md) | StateAggregate 如何创建、恢复并顺序演进？ |
