# Classify Coordination State for DSM

## When to use

Use this task before introducing DSM, expanding its scope, or approving a new state model.

## Inspect first

- Locate the authoritative source, writers, readers, and recovery source.
- Record the business impact of loss, staleness, divergence, or duplicate application.
- Read the [applicability boundary](/en/01-what-is-dsm.html) and [exclusion decision](/en/25-when-not-to-use.html).

## Required inputs

Obtain the state lifecycle, tolerated staleness, external effects, durability requirement, audit requirement, and target topology. Preserve missing items as named unknowns.

## Implementation path

1. Classify the state as an authoritative fact, coordination state, event history, or analytical data.
2. Determine whether another replica or an authoritative system can repair it.
3. Describe the consequence of local success during a partition.
4. Produce `STOP`, `PROBE`, or a bounded `ADOPT` decision from the hard constraints.
5. Attach a minimal experiment, success criteria, and stopping condition to `PROBE`.

## Constraints

- Orders, inventory deductions, payment ledgers, and complete audit history stay in their authoritative systems.
- Replica repair cannot retract an external effect that already occurred.
- Source capability does not establish production acceptance in the target environment.

## Failure patterns

- Selecting DSM only because several nodes read the state.
- Comparing databases, messages, locks, caches, and DSM by feature count.
- Using a single-node example as multi-node or production evidence.

## Validation

Have business and platform owners review the classification, failure consequence, and recovery path. Run a named probe for decisive unknowns and record environment, inputs, and observations.

## Evidence

- [State and collection contracts](/agent/en/v/0.1.2/reference/state-and-collection-contracts.md)
- [Version and evidence](/agent/en/v/0.1.2/reference/version-and-evidence.md)
- [Pinned DSM source](https://github.com/xbdotl/dsm/tree/505e7557da94e3f74da84ecf75bc8a9282732e4f)
