Articles

When to Migrate vs. When to Integrate: The Decision That Defines Your Data Future

November 24, 2025
Gregory Jenelos

Every enterprise eventually faces a pivotal question: should we connect our systems together, or move our data to a new home entirely? The answer seems simple until you're staring at a 40-year-old mainframe with dwindling support, a dozen point solutions held together by ever-growing integrations, and a budget that doesn't accommodate mistakes.

Data migration and data integration are often confused because they both involve moving data. But they serve fundamentally different purposes - and choosing the wrong approach can cost you years of technical debt, millions in maintenance, or worse, a failed transformation project.

The Fundamental Difference

Data migration is about transition and consolidation.

Systems reach end-of-life. Platforms get replaced. Acquisitions require consolidation. Companies outgrow their technology stack and need to move from functionally siloed point solutions to consolidated platforms.

Migration addresses all of these - relocating data from a source system to a target, transforming it to fit the new data model, then retiring the source. The result is a cleaner footprint: fewer systems, fewer dependencies, a tidier architecture.

Data integration is about coexistence.

You're connecting systems so they can share data continuously, in real-time or near-real-time. Both systems stay alive. Think of it like building a bridge between two cities - traffic flows both directions, indefinitely.

On the surface, integration can seem more appealing - it preserves optionality and avoids the hard decision of retiring systems. But optionality has carrying costs. Every bridge you build is a bridge you must maintain, monitor, and update when either system changes. Migration delivers a leaner architecture with less operational overhead.

When Migration Is the Right Choice

Migration makes sense when you're ready to consolidate and simplify - especially for operational systems.

Consider migration when:

Situation Explanation
You're consolidating point solutions into a unified platform When a company is small, best-of-breed point solutions make sense — separate systems for finance, inventory, HR, CRM. They're cheaper and faster to implement. But as companies scale, those dozens of integrated systems become a liability. The integration maintenance alone requires a team. At some point, an ERP like Oracle or SAP makes more sense than maintaining heavy integrations between small systems. That transition requires migration: the data models are different, the business logic is different, and you can't integrate your way into a consolidated platform.
You need to keep operational systems nimble Operational data powers the systems that run your business day-to-day — order processing, inventory management, customer service, financial transactions. When something breaks at 2 AM, you need to trace the issue fast. Every additional system in your operational architecture, every integration point, is another place to troubleshoot. Migration keeps your operational footprint tight, which means fast troubleshooting and fewer dependencies when systems go down.
The source system is being retired Whether due to end-of-life, M&A consolidation, or platform replacement, if the source system will no longer exist in your technology stack, the choice is clear. You have to move the data. There's no long-term integration option; the old system will be shut down.
Historical data must live in the new system Regulatory requirements often mandate that data physically resides in specific locations or systems. PCI compliance, GDPR, HIPAA, or industry-specific regulations mean you can't leave data in an old system or a third-party archive. It must live in your new, compliant system. That's a migration, not an integration.
The old system can't support modern integration Many legacy systems — especially mainframes running COBOL or RPG — weren't designed for real-time data exchange or modern API patterns. If you can't build the ongoing integrations you need because the legacy system won't support them, migration is often the more practical choice than building expensive middleware.

When Integration Is the Right Choice

Integration makes sense when systems genuinely need to coexist and communicate -- particularly for analytical use cases.

Consider integration when:

Situation Explanation
You're serving analytical or reporting needs Analysts and business intelligence teams don't need data "moved from old to new" — they need systems to talk so they can pull together reports and dashboards. A data warehouse or BI layer that integrates with multiple source systems is a natural fit. The source systems keep running operations; the integration layer feeds analytics. Neither system needs to go away.
Both systems will remain operational for the foreseeable future If your CRM and ERP both serve ongoing business functions with no plans for consolidation, you don't want to collapse them into one — you want them to share data seamlessly. Integration is the answer: each system continues to be optimized for its purpose while staying in sync.
Data is generated in real-time Transaction data, event streams, and operational data that's constantly updated often needs real-time or near-real-time flow between systems. If you do a one-time migration, you'll miss all the new data created after the cutover. Integration platforms designed for ongoing, continuous data flow are built for this use case.
You need ongoing, bi-directional data flow When your e-commerce platform needs to send orders to fulfillment and receive tracking numbers back, or your CRM needs to sync account data with your ERP and pull back billing information, you're describing integration. Data constantly moves in both directions. A one-time migration can't handle that; only an integration platform can.

The Hidden Costs of Each Approach

Migration: Historically Front-Loaded - But That's Changing

Migration projects have traditionally been expensive upfront. Research shows that over 80% of data migration projects run over time or budget. A 2021 Forbes analysis found that 64% of data migrations exceed their forecast budget, with 54% overrunning on time.

But here's what those statistics don't capture: much of this cost and risk stems from outdated approaches to migration. Legacy migration projects often relied on manual analysis, hand-coded transformation scripts, and armies of consultants reverse-engineering undocumented systems. The migration itself wasn't inherently expensive - the lack of proper tooling made it expensive.

When migration succeeds, you have a clean slate. The old system is retired. There's no pipeline to maintain, no nightly sync jobs to monitor, no integration layer to update when either system changes. You've reduced your technology footprint.

Integration: Lower Entry Cost, Compounding Maintenance

Integration appears easier at first. You're not touching the legacy data - you're just building a bridge. The upfront cost looks manageable. But that bridge requires constant attention.

According to McKinsey, the "interest" on technical debt includes the complexity tax from "fragile point-to-point or batch data integrations." Engineering teams spend an average of 33% of their time managing technical debt, according to research from Stripe. When you build an integration instead of migrating, you're committing to that maintenance indefinitely.

Gartner estimates that about 40% of infrastructure systems across asset classes already carry significant technical debt. Organizations that ignore this debt spend up to 40% more on maintenance than peers who address it early.

The key insight: integration's "lower cost" is an illusion if you only look at upfront spend. When you factor in total cost of ownership - years of maintenance, incident response, and the opportunity cost of engineers maintaining pipes instead of building value - the calculus often favors migration.

The Real Trade-Off: Optionality vs. Simplicity

Integration preserves optionality. You can defer the retirement decision. You can keep both systems running while you figure out the long-term strategy. But optionality has carrying costs, and those costs compound over time.

Migration forces a constraint - and constraints drive clarity. When you commit to migration, you're forced to answer hard questions: What data do we actually need? What's the canonical source of truth? What business rules should govern this data going forward? The result is a tidier, more intentional data architecture.

Many organizations choose integration because migration feels too hard. But "too hard" often means "too hard to decide." Integration lets you defer decisions. Migration forces them - and in doing so, delivers a cleaner outcome.

A Framework for Deciding

Ask yourself these questions:

  • Is this an operational system or an analytical use case? Operational systems benefit from migration's cleaner footprint -- fewer moving parts means faster troubleshooting and simpler maintenance. Analytical use cases often fit integration naturally, since you're aggregating data for reporting rather than running day-to-day operations.
  • Is the source system being retired? If yes, you need migration. Integration with a system you're decommissioning is just deferred work.
  • Are you consolidating multiple systems into one platform? If yes, you need migration. You can't integrate your way into a different data model -- the data has to move and transform.
  • Do both systems genuinely need to stay alive? If yes, and they serve truly different purposes with no consolidation path, integration makes sense.
  • What's your appetite for ongoing maintenance? Integration is a subscription you pay forever. Migration is a one-time investment with long-term dividends.
  • What does compliance require? If regulators need data to physically reside in a specific system, integration won't satisfy that requirement.

The Bottom Line

For years, integration was perceived as the lesser evil - not because it was the right choice, but because migration seemed too expensive and risky. Organizations built integrations they didn't really want because migration felt out of reach.

That calculation is changing. Modern migration platforms are lowering the barrier to making the right choice - automating the analysis, transformation, and validation work that used to require armies of consultants. When migration's entry cost drops, total cost of ownership (TCO) becomes the deciding factor. And on TCO, migration often wins.

If you're modernizing legacy systems, consolidating point solutions into an ERP, or keeping operational systems lean for faster troubleshooting, migration gives you a cleaner footprint and eliminates technical debt. Yes, it requires commitment upfront. But you're trading short-term focus for long-term simplicity.

If you're feeding analytical systems, connecting platforms that both serve ongoing purposes, or need real-time data flow between coexisting systems, integration is the right tool. Just go in with your eyes open about the maintenance commitment you're making.

The worst outcome is choosing integration because migration seemed too hard - and then spending the next decade maintaining pipes to systems you should have retired years ago.

Zengines is an AI-native data migration platform built to lower the barrier to making the right choice. If you're weighing migration against integration - or stuck maintaining integrations you wish were migrations - we'd love to show you what's now possible. Let's talk.

You may also like

In this episode of the Finovate Podcast, host Greg Palmer sits down with Caitlyn Truong, CEO and Co-founder of Zengines, fresh off the company's Best of Show win at FinovateSpring 2026.

Caitlyn traces her path from hardware and software engineering in telecom to financial services consulting, where she and her co-founders kept running into the same gap: critical business logic locked inside legacy core applications written in COBOL, RPG, and PL/1. With 92 of the top 100 banks running COBOL mainframe cores and over half of credit unions and regional banks operating on RPG cores, that black box isn't an edge case — it's the industry norm.

Key points from their discussion

  • Beyond pathway tracking: Traditional lineage tools show where data travels. Zengines Contextual Data Lineage ingests entire legacy codebases to reveal not just what happens to data, but why and how — the calculations, conditions, and business rules embedded in the code itself.
  • Answers in seconds, not months: Business analysts, data analysts, compliance teams, and technical staff get self-service answers to questions that previously required waiting on scarce subject matter experts.
  • Three use cases driving urgency: Meeting regulatory compliance requirements, de-risking modernization and transformation programs, and making legacy data AI-ready with the trust and traceability regulated institutions need.
  • The Finovate experience: Caitlyn shares how the Sherlock Holmes-themed demo brought "shining a light into the black box" to life on stage — and her advice for first-time demoers on using seven minutes to plant hooks that turn into real booth conversations.

Listen to the full episode

Watch the demo replay

There is a rule that has been on the books for over a decade, and almost nobody outside of risk and compliance teams has ever heard of it: BCBS 239. It is not a catchy name. But the idea behind it is one of the more sensible things to come out of the post-2008 regulatory response: banks should be able to explain where their risk numbers come from.

Not approximate. Not eventually. Be able to trace a number back to its source, on demand, and show the path it took to get there.

That standard came into force for the world’s largest banks in January 2016. Almost ten years later, only a handful of the 31 global systemically important banks (G-SIBs) have reported full compliance. The ECB’s RDARR Guide, published in May 2024, named data lineage as one of seven priority areas still holding institutions back, and said it expects remediation work to continue through 2027.

I want to make the case that this isn’t a story about banks dragging their feet, or regulators failing to enforce something. It’s a story about a rule that was right, running into a technical wall that was real.

The wall was real

If you’ve spent time around a bank’s core systems, you already know what the wall looks like. Decades of COBOL or RPG, written and rewritten by people who retired years ago, running calculations that nobody currently on staff can fully explain. Ask a team to trace how a specific risk figure was derived, and the honest answer is often: we’d need a few months, and a few of our most senior mainframe engineers — who are also the people we can least afford to pull onto this.

That’s not a compliance excuse. It’s a real description of how these systems work. Logic gets buried inside modules that branch into other modules, which branch into more, written in a language most engineering schools stopped teaching in the 1990s.

So banks have been stuck between a standard they understand and largely agree with, and infrastructure that makes meeting it genuinely hard. Regulators have been patient about this — I think correctly — because the alternative, demanding visibility into systems that were close to a black box, wasn’t realistic.

What’s changed

I run a company called Zengines. We built technology specifically to deal with this wall: parsing legacy code at scale, tracing how data moves through mainframes and AS/400 applications, and surfacing the business logic that’s been buried inside them for decades — with the context needed to make it usable.

At one Fortune 100 financial institution, we’re currently working through hundreds of thousands of COBOL modules, some of them tens of thousands of lines deep, netting out to tens of millions of lines of code. Questions that used to take a mainframe specialist months to answer — tracing a variable by hand through branch after branch — can now be answered in seconds. An analyst can ask the system directly where a number came from, instead of opening a ticket and waiting. That same self-service access lets teams build their own understanding, and answer questions from regulators and transformation programs directly.

I’m not suggesting this solves everything BCBS 239 asks for. Governance, and the behavioral discipline of actually using data management tools once you have them — those still take sustained organizational effort, and always will.

But the specific claim that legacy mainframes are too opaque to document fully? That claim is no longer true, at least not in the way it used to be.

Why this matters beyond one regulation

I’d guess most people reading this don’t work in regulatory compliance.

If you’re a CDO, a CIO, or a risk leader at a bank with a mainframe at its core, BCBS 239 is probably one item on a long list. But the underlying question — can we actually explain how our own systems work? — isn’t a regulatory question. It’s a basic operational one. It’s the same question that determines whether you can trust the data going into a new AI initiative, whether you can defend a number in front of your own board, and whether the next system migration breaks something nobody saw coming.

Lineage has quietly become a prerequisite for almost everything banks are now trying to do with their data. Most executives don’t ask for it directly, because they don’t think to ask — they ask for the AI use case, or the modernization roadmap, or the faster reporting cycle, and lineage turns out to be the thing standing between them and any of it.

Where I land

I don’t think this is a story that needs villains. The standard was right. The barrier was real. What’s changed is narrower, and more hopeful: the wall that made the standard so hard to meet has a way through it now.

If you’re a regulator, I’d offer this as something worth knowing: the technical excuse has less weight than it used to. If you’re an executive at a bank still living with this problem, I’d offer something more direct — this is more solvable, and more quickly, than you’ve been told.

Either way, the goal was never the regulation itself. It was being able to look at your own systems and actually understand them. That’s now a lot closer than it’s been in years.

Sincerely,

Caitlyn Truong

CEO, Zengines

At industry conferences this year, I’ve spent dozens of hours inside conversations with CEOs, CDOs, CIOs and operating executives across financial services. When I ask what’s keeping them up at night when it comes to their data, the answer is remarkably consistent: data access. They want data more accessible, faster, in more usable form, in more places, with fewer gatekeepers.

What's notable is what they don't ask for. Not trustworthiness. Not audit-ability. Not the ability to defend a number to a regulator without calling three people first. Access is the ceiling of the conversation, and honestly, that makes sense. In large financial enterprises built on decades of legacy applications, murky integrations, and pipelines that nobody fully documented, just getting the data somewhere useful is still a meaningful achievement.

The problem is that "getting the data" is already more complicated than most leaders realize. The moment data leaves its source system, decisions are being made about it. Decisions that quietly change what it means. And if you don't know those decisions were made, you don't know what you're actually looking at.

That's where lineage comes in, and why it matters even before you get to the outcomes leaders should be asking for.

Below, I’ll walk through (1) what “access” really delivers, (2) the abstraction layer hidden inside every extraction, (3) the compounding problem of “data derivatives”, (4) a concrete example – encoding and precision – where this gets expensive, and (5) what business leaders should be asking for instead.

What “Data Access” Really Delivers

When a business team asks for access to data, they almost always receive something that has already been processed for their consumption. Someone – usually a data engineer or database administrator – sat down with the source system and made a series of decisions:

  • Which tables matter for this use case
  • Which fields to expose
  • How to filter, aggregate, or join the records
  • Which technical artifacts to strip out (temp tables, system metrics, audit fields that don’t translate to business meaning)

These decisions are reasonable. Business consumers don’t want raw operational data; they want something readable without extraneous noise. But every one of those decisions encodes logic and judgment that doesn’t travel with the data. The output looks complete – and to the business user, it looks like the source of truth – but it is already an abstraction.

The Extraction Event Is a Translation Event

I find it useful to think of an extraction as a translation. Someone translated the operational reality of a data storage system into a business-readable view. Like any translation, choices were made: what to keep, what to drop, how to render concepts that don’t map cleanly across contexts. And like any translation, those choices can quietly change the meaning.

When a business leader looks at the extracted view, the assumption is usually that the data was “moved and shifted” – that is, copied with fidelity. That assumption is possible. In my experience, it is also highly doubtful. Logic gets applied at the moment of extraction, and unless someone deliberately captured and shared that logic, it is invisible by the time the data reaches a dashboard.

Abstractions of Abstractions: How Data Derivatives Compound the Problem

Here is where it gets harder.

Once an extracted data set exists, other people start using it. And why wouldn't they? There is already a data access path. The alternative - forging a new data access path - is the full corporate yellow tape headache: hunting for a charge code, filling out a technical work request that Business can’t quite decipher, watching that ticket age in a queue, and depending on legacy data SMEs who left the company in 2019. The extracted data set skips all of that. Already shaped for consumption, already lightly documented, already trusted by some peer team who vouched for it in a meeting six months ago. So the next team builds a report off it. Or creates a derivative data set for their own use case. Or both. What they don't realize is that the easy path and the right path may not be the same one.

They use it because it’s available and easier than starting from scratch – it’s already shaped for consumption, already lightly documented, already trusted by some peer team. So they build a new report off it. Or they create a derivative data set for their own use case. Or both.

That derivative is now an abstraction of an abstraction. The further you move from the originating system, the more layers of unrecorded judgment sit between the business decision and the operational event the data was supposed to describe. By the third or fourth hop, the question “where did this number come from?” can be genuinely difficult to answer – even for the team that produced the report.

A Concrete Example: How Encoding and Precision Quietly Rewrite Your Data

Let me make this concrete with an example I keep encountering.

When data is moved between systems, engineers make practical choices about how to package it. One of those choices is how to handle numeric precision. A value originally stored at six decimal places in the source might be packaged at four, or two, depending on what the receiving system supports – or simply what the engineer is most familiar with.

In some industries, that’s fine. In financial services, insurance, and healthcare, it is often not fine. A decimal place in an interest rate, a reserve calculation, or a pricing model can represent material variance. Once precision has been silently reduced, the data is no longer the real data – it is an approximation that looks identical to a casual reviewer. The business consumer assumes they’re working with the underlying record; in reality, they’re working with a rounded version of it that was reshaped during packaging.

This is exactly the kind of change that lineage is built to surface. Without lineage, you can’t tell that anything happened. With lineage, the precision change is documented, traceable, and reviewable.

Why Regulated Industries Can’t Afford to Skip Data Lineage

Regulatory frameworks have been ahead of business intuition on this point. BCBS-239 requires banks to demonstrate the accuracy, completeness, and timeliness of their risk data – which is impossible to defend without lineage. ORSA and Solvency II require insurers to substantiate the data flowing into solvency and capital calculations. None of these frameworks ask whether you have access to the data. They ask whether you can prove what the data is and how it got there.

For institutions operating under these regimes, lineage isn’t a nice-to-have analytics enhancement. It is the substrate that makes the rest of the data conversation defensible.

What Business Leaders Should Be Asking For Instead

If “give me access to the data” is the wrong ask on its own, what’s the right one? In my view, business leaders should be asking three questions every time a new data set lands on their desk:

  1. Where did this data originate, and what happened to it between then and now? Not a verbal summary – a documented path that is understandable in Business terms.
  1. What decisions were made during extraction or packaging that could have changed the meaning of the values I’m looking at? Especially around encoding, precision, filtering, and aggregation.
  1. If a regulator or auditor asked me to defend this number tomorrow, do I have the evidence trail to do it? If the answer is “we’d have to go find the engineer who built this,” the answer is no.

These questions don’t replace the access conversation – they extend it. Access is the entry point. Lineage is what makes access trustworthy.

A Final Thought

The reason business teams don’t ask for lineage isn’t that lineage doesn’t matter. It’s that the absence of lineage rarely announces itself. The data looks fine. The dashboard renders. The report mostly ties out. The risk lives in the assumptions you didn’t know you were making about what the data went through to get to you.

If your business teams are only asking for access, you have a gap – and in legacy environments where decades of undocumented logic sit between the source and the report, that gap is widest. The fix is to start asking for lineage too.

See Contextual Data Lineage in Action

Zengines Contextual Data Lineage is built for the environments where the lineage gap is widest – large financial enterprises with critical business logic locked inside COBOL, RPG, PL/1, and AS/400 code. We extract that embedded logic, make the data path visible, and give your teams the evidence trail they need to defend their numbers to auditors, regulators, and themselves.

If you’re working through a BCBS-239, ORSA, or Solvency II mandate, a planned mainframe migration, or a growing trust gap between your business teams and the data they consume, we’d like to hear about it.

Subscribe to our Insights