We've been building data platforms on AWS since 2008, much of that time inside financial services, healthcare and other regulated environments where a botched cutover turns into an audit finding. Across that work, one pattern holds steady. Well-chosen stacks stall all the time, and fairly ordinary ones ship. What separates them is a handful of delivery decisions that most tool comparisons never mention.
Our running example is an online travel company, made up but typical. It sells about $2 billion a year in hotel and package bookings, and an Amsterdam subsidiary serves its EU customers. When its first data modernization program started, the estate was an on-premises Cloudera Hadoop cluster with six years of clickstream, a SQL Server warehouse that finance closed the month on, an Oracle booking database and about 1,900 Informatica PowerCenter workflows feeding all three.
Choosing the tools took a quarter. Each of the three platform vendors ran a demo against a sample of the booking data, the architects scored them on a spreadsheet, and procurement spent weeks on credits. The team settled on Redshift for finance and Apache Iceberg tables on Amazon S3 for the clickstream, a stack we'd have been comfortable with. By the ninth month the program had stalled, the Informatica license had quietly renewed for another year, and people were blaming the spreadsheet.
That quarter would have been better spent on the inventory. The leading platforms differ less in capability than their demos suggest, so choosing between them mostly moved the travel company's cost and fit. Its outcome turned on the scope, the validation, the cutover, the legacy retirement and who carried the delivery risk, and the rest of this guide follows it through each of them.
At the travel company, all five layers showed up in the first month. Converting the Oracle booking schema was a migration problem and moving 1,900 PowerCenter workflows an integration one, while finance and the personalization team each needed compute of their own. Rebuilding the transformations and cataloging six years of clickstream filled out the other two layers. Those are the five layers in the figure below, and nearly every program needs something from each.
The layer where a program breaks is rarely the one that got the most evaluation time. Its platform demos took a quarter, and nobody priced the PowerCenter conversion until month four. The travel company also found that licensing changed the math. Glue, DMS and the other AWS-native tools billed on usage with no separate license, while the third-party seats and connector fees on its shortlist added up quickly once someone priced them over three years.
The platform layer gets the most scrutiny, so it's the place to start, and on AWS the realistic shortlist has four options.
Workload shape should pick the platform, and the travel company's split cleanly. Finance closed the month on SQL-heavy BI, the kind of work that moves well off a SQL Server warehouse onto Redshift or Snowflake. The personalization team ran Spark jobs over the clickstream, and those fit Databricks or an open lakehouse better. With the clickstream in Apache Iceberg tables on Amazon S3, picking the wrong engine would only have meant swapping compute. The data itself wouldn't have had to move.
Pricing models punish different habits, too. Credits and DBUs reward teams that suspend idle compute and quietly tax the ones that forget, and Redshift Serverless works the same way with RPU-hours. For warehouses coming off Teradata, Netezza, Exadata or SQL Server, our Redshift migration consulting team converts, loads and reconciles against the source before anything is switched off.
The migration and integration layers deserve their own view, because that's where most of the hours go. Here's how the main data migration tools did at the travel company:
|
Tool |
Pricing model |
What it did at the travel company |
Watch for |
|---|---|---|---|
|
AWS DMS with DMS Schema Conversion |
Replication by the instance-hour or DMS Serverless capacity; Schema Conversion is free apart from S3 storage |
Moved the Oracle booking database with change data capture |
Stored procedures and vendor SQL that still need an engineer |
|
AWS Glue |
DPU-hours |
Took over the PowerCenter workflows that survived the inventory |
Job sprawl if legacy jobs get copied one for one |
|
Fivetran |
Monthly active rows |
Pulled the SaaS sources: the CRM, the ad platforms and the payment gateway |
Bills that climb on high-churn tables |
|
Amazon MSK or Confluent |
Cluster or broker capacity |
Streamed booking events into the clickstream lake |
Operational load on a small platform team |
|
dbt |
Open-source core, paid cloud seats |
Rebuilt finance's revenue models with tests attached |
Model sprawl without naming and ownership rules |
The Fivetran and dbt rows now share an owner. The two companies completed their merger on June 1, 2026, so a buyer who wanted ingestion and transformation from separate suppliers would now have to look elsewhere for one of them. On the AWS side, AI coding agents have been able to drive DMS Schema Conversion through the AWS MCP Server since July 2026, from browsing source metadata to generating the assessment report.
Moving PowerCenter workflows onto Glue is the core of most data pipeline modernization on AWS, and it's where the travel company's hours went. If the new platform will also serve AI agents, the hard parts sit in the catalog, the policy model and the write path rather than in storage, which is what a lakehouse built for agentic AI has to get right.
Because every serious option in those tables can do the job, and the travel company's program stalled for reasons none of them address.
Its scope came from interviews, and people remembered running about 1,100 PowerCenter workflows. The scheduler logs showed 1,900, and roughly 40% of them had no downstream reader at all. Validation was planned for the end, so the first sample test of the finance marts after cutover turned up a revenue variance nobody could explain in time. Nobody had rehearsed a rollback either, so the go/no-go call that night turned into a negotiation between finance and the program lead. By then the cutover date had slipped past two renewals, the SQL Server warehouse and the Informatica license. Governance still sat in a phase planned for after go-live.
That last gap is common. In the 2026 State of Data Integrity and AI Readiness report from Drexel University's LeBow College of Business and Precisely, 48% of respondents said they hadn't yet implemented programs to govern the data used for AI.
The New York Times shows the other side of it. Its subscription engine, PLATO, ran on Oracle, and the team had tried to move it five times in six years. The migration to Aurora PostgreSQL used standard AWS tools, the AWS Schema Conversion Tool and AWS DMS, and the difference was the delivery wrapped around them: 6 million lines of code in scope, row-level validation at 100% before traffic moved, and zero revenue impact from the cutover.
Five decisions settled before build starts, each one a gate the customer signs. In the travel company's second attempt they carried more weight than anything on the scoring sheet, and the fifth is the one most programs skip, though it's the gate that turns modernization savings into real budget.
|
Gate |
At the travel company |
|---|---|
|
Scope from evidence |
The inventory came from scheduler logs, lineage and query history, and the 760 workflows with no readers were retired before anything moved |
|
Prove the hardest part first |
Revenue recognition for cancelled package bookings, buried in SQL Server stored procedures, was rebuilt and tested in the first three weeks |
|
Validate against the system you're replacing |
Both estates ran on live bookings for six weeks, and every variance in the finance reports got a signed explanation |
|
Cut over on a rehearsed runbook |
Finance approved the rollback criteria a month early, and cutover night ran off that checklist |
|
Retire the legacy estate on a date |
The PowerCenter and SQL Server renewal dates became the switch-off dates |
There was a sixth decision, too, and it sat above the others: who pays when the date slips. The travel company's first contract was time and materials, so every slipped week landed on its own budget. The second was a fixed date and a fixed fee, with overage on delays the delivery team caused absorbed by that team.
Tool spend is usually the smallest and most predictable line in a data modernization budget, and it was at the travel company. The expensive lines were engagement hours, the months of running two estates and the licenses that kept renewing because nobody had scheduled a shutdown.
We'd build the three-year view the way the figure does, adding platform, tools, delivery, dual-run and whatever legacy remains, then subtracting what gets retired. The travel company's first business case left that last term blank, which is how a Hadoop cluster, a SQL Server warehouse and PowerCenter all stayed on the books.
That's also where the funding hides. At the travel company it sat in the SQL Server renewal, the PowerCenter license and the support contract on the Hadoop hardware, and timing each cutover against those dates let the program pay for a good share of itself. We'd treat every license renewal as the real deadline for that reason. For eligible workloads, AWS's Migration Acceleration Program (MAP) can cover part of the migration cost as well, and your account team will know whether yours qualify.
For the travel company, four frameworks applied, and none of them took a platform off the shortlist. PCI DSS v4.0.1 came with the card payments and CCPA with its California customers. SOX applied because the company is publicly listed, and the Amsterdam subsidiary brought GDPR. What they changed was the configuration, where data lived and what evidence the migration had to produce, which is the usual pattern.
Getting that wrong is expensive. IBM's 2026 Cost of a Data Breach research found that the global average breach cost "climbed 12% over last year, reaching a record USD 4.99 million."
At the travel company, the evidence was built along with the system. Lineage, reconciliation records and access logs came out of the migration as deliverables, and card data was tokenized before it reached the lake. Regulated industries take the same approach further, and our financial services data modernization work is engineered against FFIEC, SEC, FINRA and SOX expectations from the first sprint.
In fixed phases, with a signed exit at each one. Across our engagements, the median from kickoff to production is 12 weeks, and the travel company's finance domain landed close to that. A multi-petabyte estate with hundreds of upstream systems takes longer, and the plan should say so on day one.
Where the data lives changes the first weeks. US programs in healthcare or financial services should get the BAA or vendor risk review signed before any regulated data touches a non-production environment, because that's more often the long pole than the conversion work. For the travel company, the Amsterdam subsidiary meant settling EU data residency and transfer mechanisms in week one. An EU financial entity would also need the provider in its DORA register of ICT third-party arrangements before build starts.
The travel company's gates followed how we work on every engagement, down to the clause that converts customer-caused delays to time and materials at standard rates, so both sides knew the rules before the first sprint.
About delivery, mostly. The tools look much the same in every proposal, so the travel company's second round of vendor meetings ran on the seven questions below, and two of the three firms it talked to couldn't answer the one about who writes production code.
That question matters more than most buyers expect, because the person who owns go-live should be the person who designed the system. At the travel company, that meant a named forward-deployed engineer who stayed through cutover and the first month-end close.