Skip to content
Pexaworks

Blog

Your legacy system, not your AI strategy, is what's actually blocking your roadmap

Arjun Rao, Senior AI Engineer · March 10, 2026

We get a version of the same conversation with almost every client who wants to add AI to something built on a system that's been running for eight or ten years. They come in assuming the hard part will be the AI — picking a model, designing the agent, getting the accuracy where it needs to be. The hard part is almost never that. It's getting clean, reliable access to the data and workflows that already live inside the old system, and that part gets underestimated in nearly every scoping conversation we've sat in.

This isn't just our experience — it shows up clearly in how the rest of the industry is describing the same problem. Close to 60% of AI leaders now name legacy system integration as the primary thing standing between them and shipping agentic AI capabilities, and a majority of enterprises say legacy systems are actively blocking AI adoption outright. Those old systems also aren't a small corner of the budget: they're commonly absorbing the large majority of IT spend just to keep running, before a single dollar goes toward anything new.

The mistake we see most often is treating "the old system is in the way" as a reason to replace it, when replacing it is usually the most expensive and highest-risk way to solve the actual problem. A twelve-year-old order management system that's slow, ugly, and painful to work in can still have a perfectly serviceable database and a clear data model underneath the mess. The AI feature doesn't need the whole system rebuilt. It needs a well-defined way to read the data it actually cares about and, if it's going to take action, a narrow, well-audited way to write back — which is a much smaller, much cheaper project than "modernize the platform" turns out to be.

A real discovery phase produces a specific, checkable set of deliverables, not a vague sense of "we looked into it." At minimum: a data map showing exactly which tables, fields, or API endpoints the AI feature actually needs to touch, and which of those are already clean versus which need transformation before they're usable; an access assessment covering whether the old system exposes an API at all, or whether the integration has to go in at the database layer, which is a materially different, and usually more expensive, kind of project; and a written list of the specific unknowns still open at the end of discovery, rather than pretending everything got resolved just because the phase is over. That last one matters more than it sounds like it should — a discovery phase that produces false certainty is worse than one that honestly flags what's still unclear, because the false-certainty version is what turns into a blown budget three months into the build.

For the majority of legacy systems that do turn out to have a workable path — which is most of them, once someone actually looks — a few patterns cover almost every real integration we've built. An API façade sits in front of an old system that has no real API of its own, exposing a clean, modern interface while translating requests into whatever the underlying system actually understands, which lets new features get built against something sane without touching the old code at all. A read replica handles cases where the AI feature only needs to read data, not write it — replicate the relevant tables into a separate, query-friendly database, and the old system never has to know the AI feature exists. And event-driven sync handles the harder case where the AI feature needs to react to changes in near-real time: the old system emits an event on a meaningful change, and everything downstream reacts to that instead of polling or waiting for a batch job. Which pattern fits depends entirely on what discovery actually found — which is the whole argument for doing discovery properly instead of guessing upfront.

We inherited a project midstream once where the original quote had skipped a real discovery phase and assumed, reasonably enough on paper, that the client's fifteen-year-old inventory system had a usable API because the vendor's marketing page said it did. It did — technically. What the marketing page didn't mention was that the API only exposed a read-only, heavily cached snapshot refreshed once every six hours, useless for the near-real-time inventory feature the AI project actually needed. The fix ended up being a direct, carefully scoped database read replica instead, which is exactly the kind of thing a two-week discovery phase would have surfaced before a fixed price was quoted, rather than after a team had already started building against an API that couldn't do the job.

Where a rebuild genuinely is the right call is when the system is API-less in a way that can't be bridged — data locked in a format nothing modern can query, a vendor that's stopped supporting it, or logic so tangled that nobody, including the vendor, can confidently say what a given field actually means anymore. That's a real category of legacy system, and it does need a proper modernization project. But it's a smaller category than most roadmaps assume, and the way to find out which one you're actually dealing with is a real discovery phase before any commitment gets made — not an assumption baked into the first quote.

The teams who get this right treat integration discovery as its own funded phase, with its own deliverable, before anyone commits to a build timeline or a fixed price for the AI feature itself. It usually takes two to four weeks, and it's the difference between a quote that turns out to be honest and one that quietly balloons once someone actually opens up the old system and finds out what's really in there. The AI part, once you can actually see and trust the data, is very often the easy part of the project — which is the opposite of what most roadmaps assume going in.

The pattern holds beyond AI features specifically, which is part of why we treat it as a standing practice rather than a special step just for AI projects. Any new capability being layered onto an old system — a new reporting dashboard, a customer-facing portal, an integration with a new vendor — benefits from the same honest look before a price gets fixed. What's specific to AI work is that the cost of skipping discovery tends to be worse: a reporting feature that turns out to need more integration work than expected is annoying and over budget. An AI agent that's making decisions or taking action on data it doesn't actually have clean, current access to is a different, more consequential kind of wrong, and it's usually not obvious until it's already in production and something's gone quietly sideways for a while.

Written by

Arjun Rao

Senior AI Engineer

Works on evaluation infrastructure and agent orchestration.

Let's build what's next.

Bring us the problem. We'll bring the team that ships.