# 识别适合 DSM 的协同状态

## When to use

在引入 DSM、扩大 DSM 范围或评审一个新状态模型前使用本任务。

## Inspect first

- 找到状态的权威事实源、写入者、读取者和恢复来源。
- 记录状态丢失、陈旧、分叉或重复应用的业务后果。
- 阅读[适用边界](/zh-CN/01-what-is-dsm.html)与[反选判断](/zh-CN/25-when-not-to-use.html)。

## Required inputs

取得状态生命周期、容许陈旧窗口、外部副作用、持久化要求、审计要求和目标拓扑。缺失项保持为具名未知量。

## Implementation path

1. 将状态归入权威事实、协同状态、事件历史或分析数据。
2. 判断节点能否从其他副本或权威系统修复该状态。
3. 写出分区期间局部成功可能产生的后果。
4. 根据硬约束给出 `STOP`、`PROBE` 或有限范围的 `ADOPT`。
5. `PROBE` 结论附带最小实验、成功判据和停止条件。

## Constraints

- 订单、库存扣减、支付账务和完整审计历史保留在相应事实系统中。
- DSM 的副本修复不能撤回已经发生的外部副作用。
- 源码存在某项能力不代表目标环境已经通过生产验收。

## Failure patterns

- 以“多个节点都要读取”为采用理由，没有说明事实源和失败成本。
- 把缓存、消息、锁、数据库和 DSM 当成可按功能数量替换的同类产品。
- 以单节点示例支持跨节点或生产结论。

## Validation

由业务与平台责任人审查状态分类、失败后果和恢复路径。存在决定性未知项时运行具名 probe，并记录环境、输入和观察结果。

## Evidence

- [状态与集合合同](/agent/zh-CN/v/0.1.2/reference/state-and-collection-contracts.md)
- [版本与证据](/agent/zh-CN/v/0.1.2/reference/version-and-evidence.md)
- [DSM 固定源码](https://github.com/xbdotl/dsm/tree/505e7557da94e3f74da84ecf75bc8a9282732e4f)
