From custom Java ESB to Mule 4: a successful migration
Over time, a critical system like the ESB can become increasingly complex and difficult to maintain, especially as new developments and adjustments rapidly pile up. Sensei stepped in, providing a solution in terms of renovation and stability.
location
Milano
industry
Editoria
technology
The challenge of digital renovation: an overview
Our client, a prominent leader in copyright management and royalty collection for authors and artists, embarked into a project of renovating its digital infrastructure. Their primary goal was to build a solid technological foundation to support the future of digitalization and optimize business processes.
However, the ESB infrastructure that was developed on a legacy Java-based platform, faced significant challenges in terms of stability and governance. It had been subject to continuous and rapid modifications, leading to a "spaghetti code" structure with fragmentary documentation.
Identified challenges
The client faced two main challenges: stabilizing a system that had become increasingly difficult to maintain, and improving documentation while implementing performance monitoring to quickly identify any issues. The client managed over 700 APIs distributed across 25 processes, handling more than 10 million transactions per month - an enormous scale that made a migration particularly complex.
In this scenario, the lack of accurate and up-to-date documentation was an additional obstacle, making it difficult to intervene in the case of malfunctions or system failures.
A structured, multi-phase approach for maximum efficiency
We adopted a strategic approach to ensure the success of the intervention:
- Mapping and documentation: the first step involved a comprehensive examination of the endpoints, gathering data from multiple sources, including application and system logs. This audit helped identify obsolete features to deprecate or remove, establishing a stable foundation for the new documentation.
- Document-Driven Design (DDD) approach: using MuleSoft's Anypoint Platform, we defined the input and output for each endpoint, formalizing them in RAML (RESTful API Modeling Language) to make them accessible to outsourced developers. This approach enhanced communication between teams and streamlined integration with external systems, improving transparency and making the entire system easier to manage.
- Implementation of new process logic: by importing the documented specifications into Anypoint Studio, we rewrote the process logic for each endpoint, creating a more robust API design that would be resilient to future changes. Each new specification and documentation were updated synchronously to ensure constant alignment.
- Gradual migration with reverse proxy: given the project's complexity and size, we implemented an incremental rollout using a reverse proxy. This allowed the old and new systems to coexist, redirecting traffic to the new APIs once activated, with the ability to roll back individual endpoints in case of issues, thus minimizing operational risks.
Implemented technical solutions
We implemented the following technologies to achieve the set goals:
- MuleSoft Anypoint Platform: used for API design, endpoint management, and documentation, it enabled us to organize and monitor the entire migration process;
- Reverse Proxy: facilitated an incremental rollout, allowing us to redirect requests to specific endpoints while maintaining operational continuity;
- Use of RAML: manageable by developers and integration systems at the same time, we made it easier to read and trace APIs.
What we achieved
Thanks to our involvement, our client achieved the following results:
- Improved stability: the new system, with a streamlined architecture and comprehensive documentation, became more stable and easier to monitor.
- Improved control: the entire system is now tracked, documented, and organized to allow future developments without compromising the original structure.
- Performance monitoring: checkpoints were introduced to monitor the system in real-time, enabling quick identification and resolution of potential bottlenecks.
Conclusion: continuous growth
The project is now in a mature phase, requiring only a small team for ongoing maintenance. Our client is satisfied with the stability and control achieved, which have made future developments more agile and secure.
By implementing precise rewriting rules for each endpoint and adopting the stateless structure of REST APIs, Sensei was able to effectively manage any issues, quickly rolling back to the previous system when necessary. This approach kept downtime to an absolute minimum, ensuring a smooth transition with no major disruptions. We are pleased with their ability to deliver a flawless transition process.