Map of migration types
One migration initiative often contains several different kinds of work. Classification prevents owners, dependencies, and rollback from being lost: code/dependency, schema/data, configuration, infrastructure/platform, and operational migrations have different evidence and failure modes.
The type is not determined only by the ticket name. Record source state, target state, affected surface, coupling, evidence gate, and decision for each type separately.
Main categories and evidence
| Type | What moves | Key risk | Required check |
|---|---|---|---|
| Code/dependency | source code, runtime, framework, libraries | API, ABI, or behavior drift | build, tests, changelog, parity |
| Schema/data | schema, records, format, indexes | loss, corruption, or irreversible state | integrity, backfill, dual-read/write plan |
| Configuration | keys, defaults, flags, environment mapping | wrong startup or unsafe default | config validation without secret exposure |
| Infrastructure/platform | runtime, host, network, storage, platform | resource, network, or permission mismatch | representative deployment checks |
| Operational | traffic, monitoring, runbook, ownership | late detection and recovery | alerts, owner, rollback drill or Unknown |
Dependencies between types
- do not begin a data change if target code cannot read the source and target formats;
- a configuration migration must have a versioned mapping and startup verification;
- an infrastructure change can alter timing, network, or permissions even without a code diff;
- operational readiness does not replace technical compatibility;
- show order and coupling in the dependency graph, and move blocking Unknowns into the risk map.
Decision record for classification
| Work item | Type | Source -> target | Coupled with | Evidence gate | Owner | Status |
| --- | --- | --- | --- | --- | --- | --- |
| framework update | code/dependency | source runtime -> target runtime | config, parity | changelog + focused checks | role | Unknown |
| record backfill | schema/data | old format -> new format | code, rollback | integrity + recovery check | role | HOLD |
| env key rename | configuration | old key -> new key | startup, secrets | config validation | role | Unknown |
Decision: classify first; execute only after gates.Canonical lesson source · JavaRush
Open JavaRush material