# 目标章节地图

## Arc 1：先看见共享状态

| 章 | 文件 | 承诺 | 前置 | 案例增量 | 主要证据 |
| --- | --- | --- | --- | --- | --- |
| 1 | `01-what-is-dsm.md` | 判断状态是否适合 DSM | 无 | 区分 route hint 与订单主记录 | DSM 定位与公开 API |
| 2 | `02-first-runtime.md` | 建立单节点 Register | 1 | 创建 `route-hints` | Getting Started、runtime 示例 |
| 3 | `03-stable-state-identity.md` | 建模 entity、metadata、codec 与 locator | 2 | 定义 `RouteHint` | 数据模型、codec 实现 |
| 4 | `04-second-node.md` | 观察双节点复制 | 2—3 | 节点 B 读取节点 A 的 route hint | REPL、两节点集成测试 |

## Arc 2：选择正确的一致性语义

| 章 | 文件 | 承诺 | 前置 | 案例增量 | 主要证据 |
| --- | --- | --- | --- | --- | --- |
| 5 | `05-register.md` | 使用 Register 表达最新元数据 | 3—4 | 更新与删除 route hint | `DsmRegister` |
| 6 | `06-concurrent-writes.md` | 解释并发写和确定性裁决 | 5 | 制造并发路由更新 | resolver、HLC、集成测试 |
| 7 | `07-lease-ownership.md` | 使用 Lease 表达有期限所有权 | 3、5 | worker 领取订单分片 | Lease API、集成测试 |
| 8 | `08-crdt-local-writes.md` | 使用 CRDT 合并本地更新 | 3、5 | 各节点累加请求数 | CRDT API、集成测试 |
| 9 | `09-choosing-collections.md` | 根据业务不变量选择集合 | 5—8 | 完成三类状态设计评审 | collection types、failure boundaries |

## Arc 3：理解复制、分区与修复

| 章 | 文件 | 承诺 | 前置 | 案例增量 | 主要证据 |
| --- | --- | --- | --- | --- | --- |
| 10 | `10-cluster-membership.md` | 解释成员发现和稳定视图 | 4 | 节点加入与离开 | cluster 实现与测试 |
| 11 | `11-delta-replication.md` | 跟踪本地提交到远端应用 | 5、10 | 跟踪 route hint delta | sync service |
| 12 | `12-repair.md` | 区分 digest、replay 与 snapshot | 10—11 | 迟到节点追平 | repair 服务与测试 |
| 13 | `13-change-stream-backpressure.md` | 控制订阅缓冲和溢出 | 5、11 | 订阅路由变更 | ChangeStream、基准 |
| 14 | `14-consistency-boundaries.md` | 说明分区窗口与不可撤销响应 | 6、11—13 | 复现局部双成功 | Redis lab、chaos tests |

## Arc 4：接入真实业务工程

| 章 | 文件 | 承诺 | 前置 | 案例增量 | 主要证据 |
| --- | --- | --- | --- | --- | --- |
| 15 | `15-domain-adapter.md` | 用领域适配器封装 DSM | 9、14 | 创建履约协调端口 | developer guide |
| 16 | `16-spring-boot.md` | 在 Spring Boot 中装配 Runtime | 15 | 属性驱动装配 | starter、示例启动测试 |
| 17 | `17-isolation.md` | 正确应用两层隔离标识 | 15—16 | 验证跨域不可见 | runtime integration tests |
| 18 | `18-testing-multi-node.md` | 建立多层行为证据 | 14—17 | 三类状态断言 | test support、integration tests |

## Arc 5：让系统可以运行和排查

| 章 | 文件 | 承诺 | 前置 | 案例增量 | 主要证据 |
| --- | --- | --- | --- | --- | --- |
| 19 | `19-observability.md` | 用诊断、指标和 trace 定位差异 | 12、18 | 增加观察面 | diagnostics、Micrometer |
| 20 | `20-security.md` | 说明准入、验签、防重放和审计 | 11、16 | 增加安全扩展 | security 模块与集成测试 |
| 21 | `21-lifecycle.md` | 管理启动、冻结、迁移与关闭边界 | 16、19 | 演练关闭 | lifecycle API 与当前测试 |
| 22 | `22-capacity.md` | 建立可复跑的容量测量 | 13、18—19 | 设计场景基准 | JMH 基准 |

## Arc 6：证明边界并完成毕业项目

| 章 | 文件 | 承诺 | 前置 | 案例增量 | 主要证据 |
| --- | --- | --- | --- | --- | --- |
| 23 | `23-redis-consistency-lab.md` | 用熟悉协议观察复制与 repair | 14、18—19 | 双节点边界实验 | Redis example 与 black-box tests |
| 24 | `24-federation.md` | 说明跨集群三类集合差异 | 9、12、20 | 跨区域观察协同状态 | federation API 与测试 |
| 25 | `25-when-not-to-use.md` | 比较 DSM 与替代方案边界 | 14、22—24 | 重新选择订单、库存和协调状态 | 全书证据 |
| 26 | `26-capstone.md` | 交付可运行、可排查的履约控制面 | 1—25 | 汇总三个集合与故障演练 | 全书资产与验收脚本 |

## 附录

| 附录 | 文件 | 查询面 |
| --- | --- | --- |
| A | `appendix-a-runtime-api.md` | Runtime 与三类集合 API |
| B | `appendix-b-spring-properties.md` | Spring Boot 配置 |
| C | `appendix-c-troubleshooting.md` | 错误与排障决策树 |
| D | `appendix-d-glossary.md` | 术语表 |
| E | `appendix-e-evidence-index.md` | 能力与证据索引 |

