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

TypeWhat movesKey riskRequired check
Code/dependencysource code, runtime, framework, librariesAPI, ABI, or behavior driftbuild, tests, changelog, parity
Schema/dataschema, records, format, indexesloss, corruption, or irreversible stateintegrity, backfill, dual-read/write plan
Configurationkeys, defaults, flags, environment mappingwrong startup or unsafe defaultconfig validation without secret exposure
Infrastructure/platformruntime, host, network, storage, platformresource, network, or permission mismatchrepresentative deployment checks
Operationaltraffic, monitoring, runbook, ownershiplate detection and recoveryalerts, 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

MIGRATION_TYPES.md — documented example
| 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