Modern ELT Stack

IntermediateData Pipeline

Airbyte extracts into Snowflake, dbt transforms, Airflow orchestrates: the modern ELT standard.

Published 27 September 2026

Core Tools
Python
Python
Snowflake
Snowflake
Airbyte
Airbyte
dbt
dbt
Orchestrator
Apache Airflow
Dagster
Prefect

About Modern ELT Stack

The Modern ELT Stack is the community-standard approach to building data pipelines: Airbyte extracts raw data from source systems and loads it directly into Snowflake (ELT, not ETL; transform after loading). dbt runs SQL-based transformations inside Snowflake to produce clean, documented data models. Apache Airflow orchestrates the schedule and dependency graph of the full pipeline.

This stack separates three distinct responsibilities that were previously conflated in monolithic ETL tools: ingestion (Airbyte), transformation (dbt), and orchestration (Airflow). Each tool is best-in-class for its function and independently replaceable. Add the containerization addition to package the Airflow and dbt environment consistently across local development and deployment.

This is the reference architecture for data engineering teams building their first modern data stack or replacing a legacy ETL tool. It is widely documented, has a large talent pool, and scales from startup to enterprise without architectural changes.

Key Features

  • ✓Airbyte 300+ connectors for source-to-Snowflake raw data loading
  • ✓dbt SQL transformations with testing, documentation, and lineage in Snowflake
  • ✓Apache Airflow DAG orchestration for pipeline scheduling and dependencies
  • ✓dbt incremental models for efficient large-table refresh patterns
  • ✓Airflow Snowflake and dbt operators for tight pipeline integration

When to Use Modern ELT Stack

  • →Teams replacing a legacy ETL tool (Informatica, SSIS) with a modern open-source stack
  • →Startups building their first data warehouse on Snowflake with analytics engineering practices
  • →Organizations centralizing data from 10+ SaaS tools into one analytical store
  • →Data engineering teams who need dbt testing to guarantee downstream data quality
  • →Companies that need a scalable orchestration layer for complex multi-step pipelines

Pros

  • Industry-standard architecture with the largest talent pool of any data engineering stack
  • Each component is best-in-class for its specific function
  • dbt testing and documentation improve organizational data trust
  • Airflow handles complex pipeline dependencies at any scale

Cons

  • Significant setup and operational complexity for all three components
  • Snowflake costs can be substantial for large data volumes with continuous queries
  • Airflow has a steep learning curve for DAG authoring and debugging

Orchestrator Options for Modern ELT Stack

Apache Airflow

Modern ELT Stack with Apache Airflow

The default and the most widely deployed orchestrator in data engineering: mature operators for Snowflake, dbt, and Airbyte, and the largest pool of examples and answers to learn from. The tradeoff is a real learning curve in DAG authoring and setup.

Dagster

Modern ELT Stack with Dagster

Swap in Dagster to model the pipeline as assets instead of tasks: each dbt model and loaded table becomes a tracked asset with lineage, which makes a broken pipeline easier to reason about. Its dbt and Snowflake integrations are first-party.

Prefect

Modern ELT Stack with Prefect

Swap in Prefect for a lighter, more Pythonic style: @flow and @task decorators with dynamic, code-first pipelines and native retries, and official collections covering Snowflake, dbt, and Airbyte.

Modern ELT Stack Add-ons

Each addition below extends this stack with a capability the base stack works fine without. None are required: include the ones your product actually needs when building this stack, and skip the rest.

CI/CD Add-ons

Add CI/CD when you want a dedicated pipeline for running tests, linting, or multi-stage builds before a deploy goes out. Many hosting platforms already redeploy automatically on every push on their own — a CI/CD tool adds the most value on top of that by gating the deploy on a passing test suite, and matters even more when the hosting choice does not auto-deploy at all, such as a self-hosted server.

GitHub Actions

Modern ELT Stack with GitHub Actions

Runs dbt test and validates Airflow DAG syntax on every push, catching a broken model or DAG before it reaches the scheduled pipeline.

GitLab CI/CD

Modern ELT Stack with GitLab CI/CD

The same dbt-and-DAG validation for teams whose pipeline code lives on GitLab, configured in .gitlab-ci.yml. Merge-request pipelines can build and test only the changed dbt models in a temporary Snowflake schema and import every DAG file, so a typo can't break the scheduler after merge.

These are highlighted picks. To see all the tools, check the CI/CD Pipelines category.

Containerization Add-ons

Add containerization when you want the app packaged the same way across local development, staging, and production, or need to deploy somewhere that isn't a managed serverless platform.

Docker

Modern ELT Stack with Docker

Package the Airflow and dbt environment identically across local development and deployment, so a dbt model that runs cleanly on a laptop doesn't fail on version drift in production.

These are highlighted picks. To see all the tools, check the Containerization category.

Frequently Asked Questions about Modern ELT Stack

Why Airbyte instead of writing custom ingestion scripts?

Airbyte's 300+ pre-built connectors cover most common data sources without writing or maintaining bespoke integration code, and it handles schema evolution automatically as source fields change.

Do I need Airflow if the pipeline only runs once a day?

Even a single daily run benefits from Airflow's retry logic, dependency ordering, and failure alerting over a bare cron job, especially once the pipeline has more than one step that can fail independently.

Airflow, Dagster, or Prefect for orchestration?

All three schedule the same dbt runs and ingestion syncs, so the choice is about how you want to think about the pipeline. Airflow is the most battle-tested with the largest ecosystem. Dagster models everything as assets with lineage, which pays off once debugging data flow matters. Prefect is the lightest and most Pythonic, best when pipelines are dynamic rather than fixed graphs.

How does Airflow actually run the Airbyte syncs and dbt models?

Through provider packages, so the DAG waits on real completion rather than guessing with fixed times. The Airbyte provider's operator starts a connection's sync and waits until it finishes, failing the task if the sync fails, so dbt never runs against half-loaded tables. For dbt, the simplest route is one task that runs dbt build; the Cosmos package goes further and turns each dbt model into its own Airflow task, so a failed model can be retried alone and the Airflow UI shows the dbt lineage. A typical DAG runs the syncs in parallel, then dbt, then any downstream refresh.

How is this different from the Airbyte + dbt + Snowflake + Tableau stack?

They share the core of Airbyte into Snowflake with dbt on top, and differ at the edges. This stack adds an orchestrator, Airflow by default, to run the pipeline with retries and dependencies in Python, and leaves the choice of BI tool open. The Tableau stack ends in governed dashboards for business users and leaves scheduling open. Choose this one when reliable pipelines are the problem to solve; choose the Tableau stack when the audience for the data is the problem. Many teams grow into both.

Scores

Popularity
4/5
Learning Curve
4/5
Flexibility
5/5
Performance
5/5
Portability
4/5

Tools in the Modern ELT Stack Stack

Programming Languages

Databases

Data Engineering & ETL

Orchestrator (choose one)

Add-ons (optional — add any, or none)

CI/CD

Containerization

Modern ELT Stack Pricing

From ~$100/mo (Snowflake usage) Free to start

Airbyte, dbt Core, and Airflow are all free to self-host. Snowflake is the real cost driver here, billed by compute-second usage rather than a flat subscription, so the total varies widely with data volume and how often the pipeline runs; a small team doing daily syncs typically lands in the low hundreds of dollars a month.

Airbyte, dbt Core, AirflowFree (open source)

All three are free to self-host with no per-connector or per-DAG charges.

SnowflakeUsage-based, ~$100+/mo

Billed by compute-second and storage; cost scales directly with data volume and how often the pipeline runs, not a flat fee.