Fortune 50 retailer moved 3,500+ repositories to Spring Boot 3 in weeks.
A Fortune 50 global retailer moved more than 3,500 repositories to Spring Boot 3.x in weeks, and more than 4,000 to Java 17, by running Moderne recipes across its estate. Its engineers use coding agents alongside Moderne, and recipes keep its internal agent platform current.
- Retail
- Industry
- Java, Spring Boot
- Primary stack
- 20M
- Lines of code
- Hundreds
- Teams
The retailer moved nearly its whole codebase to Spring Boot 3.x before the holiday rush.
Only 36 percent of the codebase was on Spring Boot 3.x when the work began, and the transition finished before the retailer’s highest-volume period. Whole organizations moved onto Java 17 together, and no team had to find its own way there. With most of the estate on Spring Boot 3.x and Java 17, the retailer is planning its Spring Boot 4.0 upgrade on the same recipes.
At our scale, even small issues can ripple across the entire customer experience. Moderne ensures we never fall behind again so we can operate with confidence during peak periods.
The retailer ran the migration as parallel recipe runs across the whole estate.
Moderne ran the upgrades across thousands of repositories at once. Developers applied them inside their existing workflow and reviewed the pull requests on the repositories they owned, so the platform team set the standard and the owning teams kept control of their code.
Custom recipes took care of the retailer’s internal frameworks and libraries, so the automation reached the company’s own code as well as its open source dependencies.
Security fixes no longer wait for the slowest team’s upgrade.
The retailer runs thousands of Spring-based services across e-commerce, checkout, inventory and supply chain, owned by hundreds of teams. The migration covered roughly 20 million lines of code running on Spring Boot versions from 1.3 to 3.4. Each team faced a different starting point, a different set of dependency conflicts and a different sequence of upgrades. Coordinating that for a single repository at a time would have cost weeks for hundreds of teams during the months when change is most expensive for a retailer.
Before the migration, services on each version received security patches on different schedules and couldn’t share the internal libraries maintained by the platform team, so the gap between the oldest and newest services grew every quarter. An urgent fix didn’t land everywhere until every affected team had finished its own upgrade.
The retailer’s agent platform is also a codebase that needs upgrading.
The platform runs on Spring, so it ages like the rest of the estate and needs the same framework upgrades as the services around it. Moderne recipes keep it on supported versions, through the same process that carried the Spring Boot 3 migration.
Coding agents and recipes do different jobs. An agent works from the text of a codebase and reconstructs what it needs as it goes, which suits work inside one repository. A change across thousands of repositories has to land the same way in every one, which is what a recipe does, so an agent can call a recipe instead of reasoning its way to the same edit 3,500 times.
Related resources
See deterministic, estate-wide code change on your own repositories.