Our client operates a large service estate across their Casino and Poker division. As part of a broader platform modernisation programme, we were engaged to migrate over 100 services and 200 modules from Java 7 to Java 17.
The migration carried well-understood technical requirements. The challenge was executing it at this scale without the effort compounding into a multi-month programme. Each service, worked through manually, required several hours of upgrade work followed by repeated validation cycles against a shared remote test environment - each cycle taking 1 to 2 hours and often needing to run multiple times when startup errors appeared. At the scale of 100+ services, this was not a workable approach.
We chose to address the process constraints directly rather than absorb them into the delivery timeline.
For the migration step, we built a structured Amazon Q prompt sequence tailored to the patterns of this codebase - common dependency versions, shared configuration conventions, and known incompatibilities between Java 7 and Java 17. This allowed each service to be migrated systematically, with the mechanical work handled by AI assistance and engineers reviewing and approving the output before moving to validation. Per-service migration time came down from several hours to approximately 30 minutes.
For validation, we built a fully Dockerized local test environment that replicated the shared remote setup. This gave every engineer an immediate feedback loop without queuing for shared infrastructure or waiting on pipeline runs. When services failed to start, Amazon Q analysed the error output, proposed fixes, and in most cases corrected configurations without requiring the engineer to manually trace through unfamiliar startup behaviour. Across the estate, debugging time dropped by 60%.
The combination produced a repeatable pipeline: migrate with Amazon Q, validate locally, resolve startup issues with AI-assisted analysis, and move to the next service. Each step in the pipeline was well-defined, and the output at each stage was reviewable before proceeding.
The full migration of 100+ services and 200+ modules completed in three weeks. The validation cycle, previously dependent on a shared remote test environment and taking 1 to 2 hours per cycle, became 98% faster through local Docker environments.
Beyond the delivery timeline, Java 17 gave the client improved runtime performance, updated security support, and a platform aligned with current tooling - removing a constraint that had been accumulating technical cost for some time. The approach also left the team with a repeatable migration pattern they could apply to further modernisation work.