The Pipeline Nobody Wanted to Admit Was Broken
There was a time when mentioning ETL in a job posting signaled seriousness. You had data, you had a warehouse, and you had a process for moving the first into the second. That process was ETL: Extract, Transform, Load. It sounded clean. It sounded like engineering. And for a while, it worked well enough that nobody questioned it.

Then somewhere around 2015, the complaints started stacking up. ETL pipelines were brittle. They broke when source schemas changed. They required specialized developers who wrote proprietary transformation scripts nobody else could read. The transformation layer became a bottleneckâdata sat in staging tables waiting for someone to fix a truncation error in a column nobody remembered mapping. ETL didn’t scale with data volume, and it didn’t scale with organizational complexity. But the real problem was simpler: ETL assumed you knew what you needed before you looked at the data.
What Went Wrong
The original sin of ETL wasn’t the technology. It was the assumption. Traditional ETL assumed a clean separation between extraction and transformation, where business rules could be defined upfront and applied consistently. In practice, this meant a small team of ETL developers became gatekeepers. Want a new field in the report? File a ticket. Wait three weeks. Discover the field was calculated wrong? File another ticket.
The problems fell into a few recognizable categories:
- Brittle schema dependencies: A source system adds a column, and three pipelines break overnight. Fixing them requires touching scripts that haven’t been updated since someone named Dave wrote them in 2017.
- Opaque transformation logic: Business rules buried in Informatica workflows or SSIS packages that no one can audit without opening a proprietary GUI.
- Slow iteration cycles: Every new data source requires a full ETL design, development, and testing phase before anyone sees a single row.
- Orphaned pipelines: When the person who built the pipeline leaves, the pipeline becomes archaeological evidence rather than maintained infrastructure.
None of this was inevitable. Some organizations ran ETL well for years. But the pattern repeated often enough that when alternatives appeared, the market was ready to declare the entire category obsolete.
Enter ELT

The replacement arrived with a letter rearrangement: ELT. Extract, Load, Transform. The logic was straightforwardâmove raw data into the warehouse first, then apply transformations using the warehouse’s compute power. Snowflake and BigQuery could handle transformations at scale. Why maintain a separate transformation engine when the warehouse has more compute than you’ll ever need?
dbt made this approach mainstream. Write SQL, version control it, test it, document it. Transformation became software engineering, or at least something adjacent to it. The benefits were real:
- Raw data availability: Analysts can inspect source data before transformation, catching issues early.
- Version-controlled logic: Transformations live in Git, not in a proprietary repository with export limitations.
- Faster iteration: Want a new metric? Write a SELECT statement. Deploy it. Done.
- Transparent calculations: Anyone with SQL access can read the transformation logic.
This was a genuine improvement. But the marketing around ELT sometimes implied that moving the letter “T” solved everything. It didn’t. ELT moved the complexity; it didn’t eliminate it.
The Problems ELT Inherited
Here’s what the ELT proponents don’t always mention: loading raw data first means your warehouse becomes a dumping ground if nobody gets around to the transformation layer. The number of organizations with massive Snowflake bills and a raw schema nobody has touched in months is not small. ELTè§£å³äº the visibility problem but introduced a cost problem. Compute is cheap until it isn’t.
The transformation layer also became fragmented. Instead of one Informatica workflow, you now have forty dbt models maintained by different teams with different testing standards. Centralization shifted to fragmentation. Whether that’s better depends on your governance structure and whether anyone enforces it.
And the original brittleness problem? Still there. Source schema changes still break things. The difference is that now the breakage manifests as a dbt test failure at 2 AM instead of an SSIS error at 6 AM. You’ve changed the timing and the tool, but the fundamental dependency on upstream schema stability remains.
What Actually Replaced ETL
The honest answer is that nothing single replaced ETL. Instead, the concept fragmented into several approaches, each addressing a different aspect of the original problem. If you’re building data infrastructure today, you’re likely combining multiple patterns rather than adopting one replacement.
Change Data Capture (CDC)
CDC tools like Debezium track changes at the source database level and propagate them downstream. Instead of running a nightly batch extract that pulls everything, CDC streams only what changed. This solves the latency problemâdata arrives in minutes rather than hours. It also reduces load on source systems, which your database administrators will appreciate.
CDC isn’t without trade-offs. It requires operational discipline at the source. Transaction logs must be available and retained long enough for the capture process to read them. If your source system is a SaaS product you don’t control, CDC may not be an option at all.
Streaming Pipelines

Kafka and similar platforms enabled a different model entirelyâcontinuous data flow rather than batch extraction. Streaming makes sense when freshness matters. Fraud detection, real-time inventory, operational dashboardsâthese use cases need data within seconds, not hours.
The cost of streaming infrastructure is significant, and most organizations don’t need it for most of their data. A daily batch load handles 80% of analytical workloads perfectly well. The remaining 20% may justify streaming, but only if you can articulate which 20% and why. Building a Kafka cluster because it sounds modern is how you end up with expensive infrastructure nobody monitors properly.
Data Contracts and API-First Approaches
A quieter but potentially more significant shift is the adoption of data contractsâthe idea that data producers and consumers agree on schema, freshness, and quality expectations before data moves anywhere. This directly addresses ETL’s brittleness problem. When the source system commits to a contract, downstream pipelines have a stable foundation.
This approach requires organizational maturity and willingness to negotiate. It also works better for internal data sources than external ones. You can’t negotiate a data contract with a vendor API that changes without notice. But for internal systems, contracts enforce the discipline that ETL always assumed but rarely got.
Reverse ETL
Once data lands in the warehouse and gets transformed, someone usually needs it pushed back out to an operational systemâCRM, marketing platform, support tool. Reverse ETL tools handle this, closing the loop. It’s a practical recognition that data doesn’t just flow in one direction toward a dashboard. It flows back out to where operational decisions happen.
What Matters More Than the Acronym
The ETL-versus-ELT debate was never the right argument. The real question is simpler: can you trace a number from its source to its destination, explain how it was calculated, and fix it when it breaks?
If the answer is no, your architecture is the problem, not your acronym. I’ve seen ETL systems that were well-documented, tested, and maintained. I’ve seen ELT systems that were an unmaintainable mess. The pattern matters less than the execution.
A few practical principles that survive any architectural trend:
- Know your lineage: If you can’t trace a metric back to its source, you don’t have a pipelineâyou have a mystery.
- Test what matters: Not every column needs a uniqueness test. But every financial calculation needs a reasonableness check.
- Document decisions: Why was this transformation written this way? If the answer is “that’s how Dave did it,” you have a documentation problem.
- Monitor actual usage: If nobody queries a table, stop maintaining the pipeline that feeds it. Unused data infrastructure is debt.
- Own your dependencies: Every external system you depend on will change. Plan for it.
The current generation of data tools is better than what came before. But tools don’t substitute for thinking. ETL became a four-letter word not because the pattern was inherently flawed, but because organizations deployed it without discipline and then blamed the acronym when things fell apart. The replacements carry the same risk.
FAQ
Is ETL completely dead?
No. Batch ETL still handles the majority of analytical data workloads in most organizations. The nightly load into the warehouse remains common because most reporting doesn’t require real-time data. What’s changed is that ETL is no longer the only pattern available, and new projects often default to ELT instead. But declaring ETL dead is more about marketing than engineering reality.
Should every organization move to streaming?
Absolutely not. Streaming infrastructure is expensive to build, expensive to maintain, and requires specialized skills most teams don’t have. If your dashboards update once a day and nobody complains, streaming is overkill. Adopt streaming when you have a specific, measurable need for data freshness measured in seconds or minutesânot because a vendor deck says it’s the future.
What’s the biggest risk in replacing ETL with ELT?
Warehouse cost and data governance. Loading raw data first means your storage and compute costs scale with data volume, not with actual usage. And without clear ownership of the transformation layer, the warehouse becomes a swamp of undocumented, untested models. ELT shifts responsibility rather than removing it. If your organization doesn’t have the discipline to maintain transformation logic, moving that logic to SQL doesn’t fix the underlying problem.


