Sunday, September 8, 2024

In search of a cost effective strategy for modernizing a monolithic - Part 1

This week, I was asked to delve into a complex monolithic Java application that seems to be more than a decade old. With its tightly coupled modules and heavy reliance on a massive Oracle database, this application was a classic example of a system that had evolved into a tangled web of dependencies with years of tech debt. 

The task is to modernize this behemoth without disrupting the business operations or incurring high costs. On top of this, there was only 1 developer who knew about the applications, and that too with a lot of assumptions. The application's architecture, characterized by tightly coupled modules, posed significant challenges in terms of scalability, maintainability, technology fitment, and modernization efforts. 

Like my previous monolith-to-microservices journey, the first step right now is to understand the intricacies of the applications. It's pretty evident now that the modules are interdependent that even minor changes could have ripple effect to systems. All of these also need to happen with tight budget constraints in mind, which is a unique challenge. 

The main focus is to prioritize high-impact areas and I have started to identify the domains, mainly core, supporting, and generic. To accurately identify these domains, stakeholders and domain experts are engaged. I guess it would be several days until we even think of starting on the decomposition strategy. 

To be continued....


Building Microservices by decreasing Entropy and increasing Negentropy - Series Part 5

Microservice’s journey is all about gradually overhaul, every time you make a change you need to keep the system in a better state or the ...