Book a scoping call
Software modernization services

Application Modernization Services for Java Systems in Production

We move Java applications to supported Java and Spring versions, replace libraries that no longer get fixes and split out parts of the system only where that pays, while your releases continue. A written ballpark follows the scoping call within a week, and the first iteration maps the code before the plan is fixed.

Discuss your applicationSee the delivery process

Results from systems we have built and improved

47 to 0
critical and high-severity advisories clearedFifteen-year-old Java commerce platform · no rewriteWine merchant case study
80%
lower infrastructure cost on hotel availability searchIn-memory data grid · database kept as system of recordHotel search case study
1,000,000,000
financial transactions in under an hourFastPost · built and evolved by Stratoflow from 2013FastPost case study
Starting point
A scoping call, then a written ballpark within a week.
First iteration
Maps the application, runtime and dependencies and confirms the plan for the phase.
Implementation
Plan for 6 to 12 weeks per agreed phase.
Commercial model
Time and materials against an agreed scope, with a ballpark estimate.
Scope

How we modernize a Java application

Legacy Java applications age on every layer, from the JDK and libraries to the architecture, data and release process.

  • Java and Spring upgrades

    Java 8, 11 or 17 to Java 21 or 25, Spring Boot 2.x or 3.x to Spring Boot 4, javax to Jakarta. We check library compatibility and behavior changes before fixing the target versions, and put regression tests around the functions the business relies on.

  • Dependencies and security

    Map the dependency tree, find the known vulnerabilities and plan an upgrade or a replacement for each. Dependencies with no supported release left are listed with the decision they need.

  • Architecture and performance

    Find the boundaries that let one part of the application change on its own. Bottlenecks are measured before we choose between refactoring, new data access or extracting a component. A modular monolith is often the right result.

  • Data and integrations

    Schema changes, data backfills and interface updates planned with the application changes, checked against the systems that keep running, with a written way to verify the data during rollout.

  • Deployment and observability

    The build and release path, environment configuration, logs, metrics and traces. We define the checks that show a release is healthy and the rollback steps if it is not.

  • Cloud infrastructure

    Whether a cloud move supports the business case: operating costs compared, resource needs measured, infrastructure chosen for the workload. The migration plan covers the application, its data and its external dependencies.

  • The developed software product was built from scratch with solid quality. We have had a long-term engagement with Stratoflow for nearly 10 years. We look at them as partners, rather than contractors. I'm impressed by their team culture and cross-team support.
    Nathan PesinCTO, Legerity Financials
Scoping and delivery

How a modernization phase runs

Every phase runs in the same four steps, with working changes reviewed with your team each week.

  1. Discuss the application

    On the scoping call we review the current stack, business priorities, known problems and delivery constraints. A written ballpark follows within a week, with the access and people the work needs.

  2. Map and plan

    The first iteration reviews the code, dependencies, runtime behavior, tests and deployment process. It picks a first group of components that can change together and confirms the roadmap, the risks and the plan for the phase.

  3. Implement and verify

    Weekly iterations within the agreed scope. We record baseline behavior, make the changes and check them against the acceptance criteria, review progress with your team every week and agree any scope change before doing it.

  4. Roll out and hand over

    A rollout approach chosen for the application and its integrations, with data migration and rollback rehearsed where they apply. Code, documentation and operating notes are handed over, and what we learned shapes the next phase.

What you receive

What each phase delivers

The first iteration is part of the phase and billed with it. You keep its findings and roadmap whether you continue with us or plan the work with your own team.

  • Findings and roadmap

    From the first iteration: the current versions, dependencies, test coverage and operating constraints, with prioritized changes, migration boundaries, risks and a recommended order of work.

  • Plan for the phase

    The scope, assumptions, acceptance criteria and schedule for the rest of the phase, checked against the ballpark, and the access, decisions and support needed from your team.

  • Tested code changes

    The agreed application changes, tests and build or deployment updates, with documented behavior changes, validation results and any remaining issues that need a decision.

  • Handover and next steps

    Operational notes, rollout and rollback instructions where they apply, knowledge transfer, and a delivery report with the agreed measures and recommendations for the next phase.

Pricing and scope

How application modernization is priced

The first phase is billed time and materials against the written ballpark you receive after the scoping call. Its first iteration confirms the scope; if the findings change the ballpark, we say so before the work continues. You approve each phase separately.

The estimate depends on the components being changed, test coverage, the runtime and framework upgrade path, data migration, external integrations and operating constraints. The same factors decide whether a phase fits the usual 6 to 12 weeks. An application may need several phases; the first one sets their order and an initial estimate for the whole program.

The phase plan lists the included work, the acceptance criteria and the assumptions. If new findings or a requested change affect that scope, we agree the price and schedule before doing the additional work. Completed phases make later estimates more accurate.

Related services

Other modernization services we offer

Smaller engagements for when one decision needs to come before a full phase.

  • Architecture

    Decide whether to separate services, tighten module boundaries or keep the current structure. A fixed-fee review of usually two to four weeks ends in a target architecture and a prioritized order of work.

    Microservices consulting

  • Delivery platform

    Review the build pipelines, environments and infrastructure your developers release through, then prove one consistent path from commit to production on a reference service before it spreads.

    Platform engineering

  • Cloud migration

    Compare running costs and workload before choosing how to move to AWS, Azure or another cloud. The first iteration settles the target and the cutover plan; the migration runs in phases you approve.

    Cloud migration

  • Vulnerability remediation

    Turn a scanner or pen-test report into tested upgrades in priority order, with a re-scan you can compare and a written mitigation for anything that cannot be fixed yet.

    Java vulnerability remediation

Practical questions

Planning a Java modernization project

How long will the whole project take?

A scoped phase is usually planned for 6 to 12 weeks, starting with an iteration that maps the application. The total depends on the number of phases, their dependencies, testing, data migration and release windows. The first iteration gives an initial estimate for the program, refined as work progresses. Phases can run in parallel where the components and team capacity allow it.

Will migration require downtime?

It depends on the application, its data and the systems connected to it. Parallel running and staged cutovers reduce disruption, but some changes need a maintenance window. The first iteration finds these constraints, and we agree the rollout, validation and recovery plan with your team.

Which Java and Spring versions should we target?

Supported versions that fit your libraries, deployment environment and maintenance needs. Java 21 or 25 are the usual targets; Spring Boot 4 requires Java 17 or later, so 17 is the minimum. The first iteration checks compatibility and the upgrade path for your application.

What if the application has few tests or little documentation?

We add characterization tests where they are needed. They record what the application does today before anything changes. Time with the people who know the business workflows tells us which behavior has to stay and which can change.

Do we need microservices or a complete rewrite?

Neither is a default. Improving a modular monolith is often enough. Where components can be separated safely, replacing them one at a time keeps each release small. A full replacement makes sense when the existing system cannot meet future needs at a reasonable cost. We compare the options in the first iteration, or in a separate architecture review if you want that decision first.

Can you take over an application built by another vendor?

Yes. We start by finding out which code, infrastructure, access and knowledge your team has. Gaps in documentation, tests or ownership become findings of the first iteration and go into the delivery plan. If you are buying or investing in the company behind the system, start with Technical Due Diligence.

How do you use AI during delivery?

We use a sanctioned toolchain within client-approved data boundaries for tasks such as characterization tests, dependency upgrades and migration scaffolding. Tool use is agreed around your environment and requirements.

What happens after the final phase?

We hand over the agreed documentation and operating knowledge to your team. If you need ongoing patching, maintenance or application support, that is a separate managed support agreement.

How do your legacy modernization services work?

We start from what the application does today. Our legacy software modernization services upgrade Java and Spring, replace unsupported libraries, add tests where changes land and extract parts only where that pays, often with the strangler pattern, while releases continue. A rewrite is one of the options we compare in legacy application modernization, and rarely the first.

How should we compare application modernization companies?

Ask each application modernization company three questions: will the engineers in the pitch do the work, how will releases continue while the upgrade runs, and what will you hold at the end. Then ask for a case study with a named system and figures you can check. Ours include a fifteen-year-old Java commerce platform taken from 47 critical and high-severity advisories to none, without a rewrite.

Do you offer application modernization consulting without delivery?

Yes. The first iteration can stand on its own as a consulting engagement: you receive the findings, the roadmap and an estimate, and carry out the work with your own team. For a single architecture question, the microservices architecture review is the smaller option.

Further reading

Modernization guides from our engineers

All articles

Next step

Plan the next step for your Java application

Tell us what runs today, what needs to improve and the constraints the work has to respect. A written ballpark follows within a week.

Book a scoping callExplore managed support