Context
The services behind several banking products were running on a mix of Java 8 and Java 17. Older runtimes meant older framework versions, ageing dependencies and diverging build setups across teams. The platform team started infrastructure work to bring services onto Java 21.
My role
I contributed to the migration infrastructure work and upgraded multiple microservices myself, from the build files through to a successful pipeline run.
What I did
- Raised the Java version of each service to 21 and upgraded Spring Boot to a compatible release.
- Carried out the javax → jakarta namespace migration that the newer Spring Boot generation requires.
- Updated Maven and Gradle dependencies, replacing or bumping libraries that did not support the new runtime.
- Fixed the compile errors and failing tests the upgrade surfaced, keeping the services' behaviour unchanged.
- Took each service through the CI/CD pipeline in Azure DevOps and on to release with Digital.ai Release.
Outcome
The migrated services run on a current long-term-support Java version with up-to-date framework and dependency versions, which makes future upgrades and security patching simpler.
Details are generalised to respect client confidentiality. No customer data is shown.