Pick migration targets with clear inputs/outputs, strong tests, and minimal framework entanglement.
Not all Java code is an equally good first migration target. The best starting points usually look like “pure-ish libraries”: code that transforms data, validates inputs, or implements domain rules with clear inputs and outputs.
This section helps you choose candidates that keep risk low: components with good test coverage, stable behavior, and a clean boundary you can wrap with a thin Clojure adapter. Avoid migrating the most framework-entangled or latency-critical parts first unless you have a strong reason.