Migration discovery: find the starting point
Migration discovery is read-only collection of facts about the source state, target intent, and transition boundaries. Before the first change, you should know at least the affected runtime, build, dependencies, deployment/configuration boundaries, integrations, and how behavior will be checked.
The starting point is a concrete revision, environment, or pilot slice from which a baseline can be reproduced. If the revision, owner, or critical input is unknown, record it as unknown rather than replacing it with an assumption.
Discovery questions and evidence anchors
| Question | Where to find evidence | Confidence | Next check |
|---|---|---|---|
| What are the source and target runtimes? | build files, CI, deployment docs | high / medium / low | compare the actual run and owner |
| Which components depend on the source? | dependency manifests, imports, lockfiles | high / medium / low | build the affected graph |
| Which integrations have a contract? | API schema, clients, tests, logs | high / medium / low | choose a representative scenario |
| Which starting point is available? | Git revision, environment, artifact | confirmed / unknown | save the baseline reference |
| What cannot be confirmed read-only? | missing docs, inaccessible systems | unknown | assign an owner or stop condition |
Migration discovery boundaries
- do not update dependencies merely because the target version seems obvious;
- do not declare a component compatible without a source, target, and evidence anchor;
- do not treat a list of package names as a complete description of runtime behavior;
- do not hide inaccessible production or vendor facts behind the word “verified”;
- do not move to a pilot without rollback or a way to compare output.
Workflow for the starting point
- Define one migration slice and state the source-to-target intent.
- Collect repository, build, runtime, integration, and deployment evidence.
- Record the revision, environment assumptions, and available baseline checks.
- List knowns, assumptions, unknowns, and an owner for each important question.
- Mark stop conditions after which analysis or the pilot must be paused.
Canonical lesson source · JavaRush
Open JavaRush material