Articles

Blog section illustration

Composable Architecture Is Not a Silver Bullet - But It Might Be Your Only Way Forward

Author img

By Claus Villumsen

02 June, 2026

Share this article

Legacy Modernization Software Architecture ⏱ 12 min read 📅 May 2026

The pitch is seductive. Replace your monolith piece by piece. No big-bang rewrite. No eighteen-month death march. Just swap out components like LEGO bricks until your legacy system quietly becomes modern. The vendor slides make it look almost peaceful. But here is what nobody tells you in the demo: composable architecture for legacy modernization only works if you actually understand what you are decomposing.

I have watched three enterprise modernization projects collapse in the past year alone. Not because the technology failed. Not because the teams were incompetent. They collapsed because someone bought the composable dream without doing the archaeology first. They started pulling threads before they knew which threads were load-bearing. And by the time they realized the mistake, they had spent fourteen months and two million dollars building a distributed system that was harder to maintain than the monolith it was supposed to replace.

When was the last time you traced a single business transaction through your legacy system from start to finish - not on a whiteboard, but in the actual running code? How many systems did it touch? How many of those integrations are documented?

The Real Problem with Legacy Modernization Is Not Technology

Every legacy system I have ever seen shares the same disease. It is not that the code is old. Old code can work fine for decades. The disease is that nobody remembers why it works. The original architects left years ago, and they took the context with them. What remains is a system that runs the business but cannot explain itself.

This matters enormously when you try to decompose it. Composable architecture assumes you can identify clean boundaries. It assumes you know which module handles pricing, which one handles inventory, which one validates orders. But in a twenty-year-old system, those boundaries have dissolved. Pricing logic lives in six different places. Inventory checks happen in the order service, the shipping service, and a stored procedure that someone wrote in 2009 and nobody has touched since. The business rules are not in a rules engine. They are scattered across three million lines of code like fossils in sediment.

You cannot compose what you do not comprehend. And comprehension, in a legacy system, is the scarcest resource of all. The teams who built these systems are gone. The documentation, if it ever existed, describes a system that no longer exists. What you have is a production artifact that works, but nobody can tell you exactly how. This is not a technology problem. This is an archaeology problem. And it requires archaeological methods to solve.

Why Composable Sounds Better Than It Is

The composable architecture movement has genuine merit. The ideas coming from practitioners like those at ThoughtWorks and Martin Fowler's team are sound. Decompose along business capabilities. Use APIs to create boundaries. Replace incrementally. These principles work beautifully when you are designing a new system. They work reasonably well when you are modernizing a system that was built with some discipline. They become dangerous when applied to systems that were never designed at all.

Most enterprise legacy systems were not designed. They accreted. They started as a small application solving a specific problem. Then they grew. Features got bolted on. Integrations multiplied. Workarounds became permanent. The system that exists today is the geological record of every business decision, every deadline crunch, every compromise made over two decades. It has no architecture in the intentional sense. It has an architecture in the emergent sense, the way a coral reef has an architecture.

When vendors promise composable modernization, they are usually imagining a different patient. They are imagining a system with identifiable modules, reasonable separation of concerns, and documented interfaces. They are not imagining your system, with its twelve different ways of calculating tax and its authentication logic that somehow ended up in the reporting module. The gap between the system they are selling to and the system you actually have is where modernization projects go to die.

The Hidden Cost of Premature Decomposition

I want to tell you about a project I observed last year. A health insurance company decided to modernize their claims processing system. The system was twenty-three years old, written in a mix of COBOL and Java, and processed four million claims per month. They brought in a consulting firm that recommended a composable approach. Start with claims intake. Extract it into a microservice. Then adjudication. Then payment processing. Component by component until the monolith was hollowed out.

It sounded reasonable. It was not. They extracted claims intake without realizing it contained thirty-seven implicit dependencies on adjudication logic. The new microservice worked perfectly in testing. It failed catastrophically in production because certain claim types triggered validation rules that lived in the adjudication module. Those rules had been copied into the intake code years ago as a performance optimization. Nobody remembered. Nobody documented it. The intake module just quietly called adjudication functions that were supposed to be downstream.

The team spent four months untangling that single extraction. Four months. For one component. And they were lucky. The failure was visible. The claims errored out. In other systems, these hidden dependencies manifest as subtle data corruption that takes months to detect. By the time you notice, you have poisoned your data lake with eighteen months of bad records. The cost of premature decomposition is not just wasted time. It is compounded damage that multiplies the longer it goes undetected.

If you started decomposing your core system tomorrow, how confident are you that you know every integration point? Not the documented ones - the actual ones. The ones that exist in production but not in any architecture diagram.

What Actually Works - Discovery Before Decomposition

The organizations that succeed at legacy modernization share a common trait. They invest heavily in understanding before they invest in changing. This sounds obvious. It is not how most projects operate. Most projects face pressure to show progress. Progress means writing new code, deploying new services, showing stakeholders something tangible. Discovery feels like delay. But discovery is the only thing that prevents disaster.

Effective discovery has several components. First, static analysis of the codebase to map dependencies, call graphs, and data flows. Second, runtime observation to understand how the system actually behaves in production, which often differs from what the code suggests. Third, business process mapping to understand which technical components support which business capabilities. Fourth, and this is the part everyone skips, interviews with the humans who have been maintaining this system. The knowledge that matters most is often not in the code. It is in the heads of the three people who have been patching this thing for fifteen years.

This discovery phase should produce an honest assessment. Not a sales document. Not a roadmap designed to make executives feel good. An honest assessment that says: here is what we understand, here is what we do not understand, here is where the risk concentrates. A good discovery will often reveal that the composable approach is not the right approach at all. Sometimes the system is so tangled that extraction is more expensive than replacement. Sometimes the business is changing fast enough that the current system will not exist in three years anyway. Knowing this before you start is worth more than any architecture pattern.

Where AI-Powered Legacy Code Modernization Actually Helps

This is where I need to be careful. The market is flooded with claims about AI transforming legacy modernization. Some of these claims are real. Many are not. Let me tell you what AI can genuinely do today, and where it still falls short.

AI excels at the archaeology work that humans find tedious and error-prone. Scanning millions of lines of code to map call graphs, identify dead code, detect hidden dependencies, and flag patterns that suggest risk. A human analyst might take months to develop a reasonable understanding of a large legacy codebase. AI-powered tools can compress that to weeks or even days. Not because the AI is smarter, but because it does not get tired, does not get distracted, and can hold the entire codebase in context simultaneously. This is genuinely valuable. It does not replace human judgment, but it gives humans something to judge.

Where AI falls short is in understanding intent. AI can tell you that function A calls function B. It cannot reliably tell you why. It cannot explain the business rule that motivated a particular implementation choice. It cannot distinguish between a deliberate design decision and a workaround that someone meant to fix later and never did. This matters because modernization is not just about preserving behavior. It is about preserving the behavior that matters while discarding the behavior that was always a mistake. That distinction requires business context that AI does not have.

The best approach combines AI-powered analysis with human expertise. Let the AI map the territory. Let humans decide which parts of the territory are worth preserving. Tools like what we build at Kodebaze focus specifically on this combination, using AI to accelerate discovery while keeping humans in control of decisions. This is not about replacing consultants with algorithms. It is about giving your team the visibility they need to make informed choices rather than guessing.

The Composable Path That Actually Works

If you do decide that composable architecture is right for your situation, here is how to approach it without destroying your business in the process.

Start with the edges, not the core. The components that are easiest to extract are the ones with the fewest inbound dependencies. Reporting systems. Notification services. Auxiliary functions that consume data but do not produce it. These extractions teach your team the mechanics of decomposition without risking your core transaction processing. You learn where the hidden dependencies hide. You build the observability and testing infrastructure you will need for harder extractions later.

Never extract a component until you can prove you understand it. This means tests. Not the tests that already exist, because legacy systems rarely have adequate test coverage. New tests that verify the behavior you are about to extract. If you cannot write tests that pass against the existing system and will pass against the extracted component, you do not understand the component well enough to extract it. This is not bureaucracy. This is survival.

Plan for the strangler fig pattern, but plan honestly. The strangler fig approach says you gradually route traffic from the old system to the new components until the old system can be decommissioned. This works in theory. In practice, many organizations end up running both systems indefinitely because the last twenty percent of functionality is too tangled to extract. Budget for this possibility. Plan for a world where the legacy system persists for years as a shrinking but still critical component. That is not failure. That is reality.

The Questions Nobody Asks Until It Is Too Late

Before you commit to any modernization approach, composable or otherwise, there are questions you need to answer honestly. Not questions for your vendor. Questions for yourself.

How much of your competitive advantage is actually encoded in this legacy system? If the answer is significant, you need to be very careful about how you modernize. You are not just upgrading technology. You are handling the machinery that makes your business distinctive. Lose the wrong piece of logic and you lose something that took decades to evolve.

How stable is your business model? If your industry is transforming rapidly, the right answer might not be modernization at all. It might be building something new alongside the legacy system while the business figures out what it needs to become. Modernizing a system for a business model that will not exist in five years is expensive nostalgia.

What is your actual risk tolerance? Composable modernization is lower risk per step but takes longer. Big-bang rewrites are higher risk but faster. Both can fail. The question is which failure mode your organization can survive. A company that cannot tolerate eighteen months of parallel development should not attempt composable modernization. A company that cannot tolerate a weekend of production outages should not attempt a big-bang cutover. Know your constraints before you choose your approach.

Finally, do you have the people? Not just the people to do the technical work. The people who understand the business logic encoded in that legacy system. If those people are gone, or retiring, or have been reassigned to other projects, your window for successful modernization is closing. The institutional knowledge that makes modernization possible is a wasting asset. Every month you delay, more of it disappears.

Here is the question that matters most: if you started your modernization journey tomorrow, who on your team could explain why your system behaves the way it does - not how it works, but why it was built that way? And what happens when that person leaves?

Kodebaze uses AI-powered analysis to map your legacy codebase and surface the hidden dependencies that derail modernization projects - giving you the understanding you need before you start decomposing. See how it works →

Related articles

Blog section illustration

AI

The Continuous Modernization Pipeline: How to Keep Modernizing Without Stopping to Ship
Most modernization programs stall because they are designed as projects with a start and end date. The organizations winning in 2026 treat modernization as a permanent pipeline — embedded in every sprint, measured like delivery, and impossible to pause without also pausing shipping.
Author img
By  Claus Villumsen
14 April, 2026
Blog section illustration

AI

AI vs. Consulting for Legacy Modernization: An Honest CTO's Guide
You have a legacy system holding your business hostage. A consulting firm costs a fortune. AI tooling sounds risky. An honest CTO’s guide to what each approach actually delivers — and how to combine them without getting burned.
Author img
By  Claus Villumsen
17 April, 2026
Blog section illustration

AI

How to Assess and Roadmap a Large Legacy Estate: A CTO's Field Guide
Someone handed you a list of 23 legacy systems and said “make a plan.” No documentation, no ownership map, no clear budget. This is the practical field guide for how CTOs actually assess a large legacy estate and build a modernization roadmap that gets funded and executed.
Author img
By  Claus Villumsen
16 April, 2026

AI + Human software Solution

Follow us

© 2026 Kodebaze. All Rights Reserved.