Architecture & ModernizationArchitecture & Modernization
Deep Dive180min
INTERMEDIATE

Legacy JVM modernization with agentic AI: Quarkus vs Spring Boot

A live modernization of a legacy Play/Akka app on Java 25: first protected by characterization tests, then translated from Scala to modern Java. The same slice is rebuilt twice—once in Quarkus, once in Spring Boot—while comparing startup, memory, DI, testability, and trade-offs.

talk.summaryAiDisclaimer

Radek Kargul
Radek KargulLunatech
Willem Jan Glerum
Willem Jan GlerumLunatech
talks.description
We bring a real legacy Scala application built on Play and Akka on stage. Anonymized from production code that we have worked on and migrate it live to Java 25 twice. We use Claude as the coding agent, but the method works with any agent. Willem Jan steers it toward Quarkus and Radek explores Spring Boot. We take turns instead of racing side by side, so the room can follow one decision at a time. We stop at each checkpoint where we score both the framework and the agent's output on a shared scorecard.

The session has four parts:
  1. Diagnose and plan (together): a tour of the legacy app, why a big-bang rewrite is off the table, the strangler fig approach, and characterization tests written with the agent before we touch anything.
  2. Translate the domain (together): case classes, Option, Either, and for-comprehensions become records, sealed interfaces, pattern matching, and Optional. The agent proposes, while we review and correct the suggestions live.
  3. Two apps (alternating): guiding both frameworks through a series of migration stages. At each checkpoint, we unpack what went right, where the agent needed human intervention, and update our scorecard across performance, developer experience, and testability.
  4. Verdict (together): the final scorecard, when we would pick which framework, where the agent actually saved time and where it needed a human override, and open Q&A
migration
java
quarkus
spring
talks.speakers
Radek Kargul

Radek Kargul

Lunatech

Netherlands

Radek has a background in Software Engineering, ML, and AI from his undergraduate and postgraduate studies at TU Delft, where he recently completed his Master's Thesis in Explainable AI (XAI) for large language models (LLMs). He sees great potential in integrating and understanding how ML/AI can be woven into modern software, a passion he's brought to stages across Europe, speaking at conferences like Devoxx, Voxxed Days, JNation, and LunaConf on topics ranging from secure AI agents with Quarkus LangChain4j to ML development for software engineers.
But Radek doesn't stop at code. He spends his mornings and evenings making people sweat as a group fitness instructor, and his talk Debugging Your Health: Fitness for Desk Warriors has resonated with audiences across multiple conferences. With a passion for tech and fitness, he loves helping desk warriors optimize both their code and their health. When he's not debugging software or coaching group workouts, you can find him experimenting with new workout routines, geeking out over biomechanics, or trying to convince his coworkers to do squats during stand-up meetings.
Willem Jan Glerum

Willem Jan Glerum

Lunatech

Netherlands

Willem Jan is a Principal Software Engineer at Lunatech who loves building cloud software and contributing to open source. He's all about writing quality code and finding ways to automate anything. Willem Jan has been working with Quarkus since the beginning and enjoys making sure his applications are both simple and secure. On weekends, you won't find him behind a keyboard - he's either out enjoying nature or volunteering with his local scout group.