Legacy Application Modernization in the Energy Sector: When the Monolith Becomes a Brake

Feedback

Project overview

Client

One of the leading transmission system operators (TSOs) in Germany, operating critical high-voltage grid infrastructure as part of the country's energy transition.

Challenge

A business-critical application based on a monolithic Jakarta EE (JBoss EAP) stack had become technically obsolete, turning from a tool into a risk. The system suffered from a lack of scalability, unable to react flexibly to load peaks. High latency caused by computationally intensive Matlab calculations slowed down the entire application. Changes to a single module required deployment of the entire monolith, and the classic Message Queue (JMS) reached its limits when networking with modern systems. The goal was to make the application Kubernetes-ready to support long-term supply security and the integration of renewable energies, without a pure "lift & shift" that would simply carry over the existing architectural problems.

Solution

Rather than a "big bang" approach, we opted for an iterative transformation following the Strangler Fig Pattern (gradual replacement). Quarkus was chosen as the technological core to leverage the team's existing Java expertise while drastically reducing resource consumption and optimizing startup times for the container environment.

The application was decomposed into functional microservices, with critical modules isolated and migrated to Quarkus. A Dual-Mode Deployment approach allowed modules to run transitionally in both the old JBoss context and the new Quarkus environment, enabling system tests on the live object without interrupting functionality. The old JMS queue was replaced by Apache Kafka (Redpanda), enabling stable asynchronous communication and opening the architecture for future real-time scenarios. The computationally intensive Matlab Application Runner was decoupled as an independent, scalable service in Kubernetes.

Parallel to the software migration, modern platform engineering principles were established: GitOps and CI/CD via Gitea Actions and GitLab CI, declarative deployment through ArgoCD using the App-of-Apps pattern, a local development environment allowing developers to simulate the entire microservice landscape via Kind and Docker, and replacement of database blobs with versioned S3 storage alongside modern caching solutions.

A key success factor was knowledge transfer through pair programming and joint architecture sessions, enabling the TSO's in-house team to independently operate and further develop the new microservices landscape upon project completion.

Result

The client now benefits from full scalability. Services scale with load rather than bottlenecking under it. Maintainability has been fundamentally improved through smaller, decoupled modules replacing an unmaintainable monolith. Security has been brought up to current standards with container isolation. The modernization has eliminated the risk of a critical bottleneck and ensures the IT systems are equipped for the requirements of the energy transition.

Contact

Let's start working on your project

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.