LabHub

Blog

Data Orchestration 2025 Complete Guide: dbt, SQLMesh, Dagster, Airflow, Prefect, Data Contracts, CI/CD (2025)

한국어English日本語中文

Season 5 Ep 4 — If Ep 3 was "who queries fastest," Ep 4 is "who governs the pipelines". Data orchestration in 2025 is in the middle of transplanting engineering principles (CI/CD, testing, contracts) into data.

Prologue — "Data pipelines are software too"

Data engineering in the 2010s was "SQL scripts plus cron." 2025 is different:

This shift created a new job title, the Analytics Engineer, and dbt stood at its center. But 2025 is not dbt alone — SQLMesh and Dagster have become genuine alternatives, while Airflow and Prefect still hold the throne of general-purpose orchestration.


Chapter 1 · Classifying Orchestration Tools

1.1 Two Axes

1.2 The Major Tools

ToolPrimary rolePhilosophy
dbt Core / CloudSQL transformationThe Analytics Engineer standard
SQLMeshSQL transformationVersions, increments, state
DagsterOrchestrationAsset-centric
Airflow 2/3OrchestrationTask DAG, general purpose
Prefect 3OrchestrationPythonic, dynamic
TemporalWorkflowReliability, state machines
Mage, KestraOrchestrationThe new generation

Chapter 2 · dbt — The Analytics Engineer Standard

2.1 Identity

2.2 Core Concepts

2.3 Dependency Management

-- models/fact_orders.sql
SELECT *
FROM {{ ref('stg_orders') }}
JOIN {{ ref('dim_customers') }} USING (customer_id)

2.5 Limits

2.6 Where It Is Used


Chapter 3 · SQLMesh — "An alternative to dbt, or a complement"

3.1 Identity

3.2 The Key Differentiators

3.3 Philosophy

"The productivity of dbt plus the rigor of a data warehouse plus the safety net of DevOps"

3.4 Example — An Incremental Model

MODEL (
  name core.fact_orders,
  kind INCREMENTAL_BY_TIME_RANGE (
    time_column order_date,
  ),
);

SELECT *
FROM raw.orders
WHERE order_date BETWEEN @start_date AND @end_date;

→ SQLMesh manages incremental processing, backfill, and caching automatically.

3.5 Limits

3.6 Where It Is Used


Chapter 4 · Dagster — "The asset-centric revolution"

4.1 Identity

4.2 The Core Difference

from dagster import asset

@asset
def orders(raw_data):
    return transform(raw_data)

@asset
def customer_lifetime_value(orders, customers):
    return compute_clv(orders, customers)

4.3 Strengths

4.5 Limits

4.6 Where It Is Used


Chapter 5 · Airflow — "Still the most widely used"

5.1 Identity

5.2 Airflow 2.x

5.3 Airflow 3.0 (2024–2025)

5.4 Managed Options

5.5 Strengths

5.6 Limits


Chapter 6 · Prefect — "Pythonic orchestration"

6.1 Identity

6.2 Prefect 2.x → 3.0

6.3 Strengths

6.4 Limits

6.5 Where It Is Used


Chapter 7 · Temporal — "A different lineage of workflow engine"

7.1 Identity

7.2 The Difference from Airflow

7.3 Where It Is Used


Chapter 8 · Data Contracts

8.1 What They Are

8.2 Composition

8.3 Tools

8.4 Example (dbt Contract)

models:
  - name: dim_customers
    config:
      contract:
        enforced: true
    columns:
      - name: customer_id
        data_type: bigint
        constraints: [{type: primary_key}, {type: not_null}]
      - name: email
        data_type: varchar
        constraints: [{type: not_null}]

8.5 Operations


Chapter 9 · CI/CD for Data Pipelines

9.1 Git and Branching Strategy

9.2 CI Stages

  1. Lint (sqlfluff, dbt lint)
  2. Compile (dbt compile, SQLMesh plan)
  3. Unit tests (samples at the model level)
  4. Contract validation
  5. Partial execution in the staging environment
  6. Statistical diff (Datafold and others)

9.3 Environment Separation

9.4 Deployment Strategies

9.5 Observability Integration


Chapter 10 · Observability and Alerting

10.1 The Five Pillars (Monte Carlo)

10.2 The Tooling Landscape

10.3 Designing Alerts

10.4 SLOs


Chapter 11 · Five Real Stack Combinations

11.1 Startup (small scale)

11.2 Scale-up

11.3 Data-heavy SaaS

11.4 Enterprise

11.5 Korean Finance and Public Sector


Chapter 12 · Practical Tips for Korean Companies

12.1 Hiring and Organization

12.2 The Order of Tool Adoption

  1. dbt plus scheduling (keep it simple)
  2. Expand tests and documentation
  3. Orchestration (Airflow/Dagster)
  4. Observability (Monte Carlo/Metaplane)
  5. Contracts (dbt Contracts/Soda)

12.3 Language and Locale

12.4 Security and Audit


Chapter 13 · Ten Antipatterns

13.1 Keeping "cron plus SQL" as is

No Git, tests, or documentation → frequent incidents.

13.2 dbt without tests

Hundreds of models → regressions explode.

13.3 Incremental logic by hand

Hand-rolled increments in dbt → a maintenance nightmare. Consider SQLMesh.

13.4 A monolithic Airflow DAG

100 tasks in one DAG → failures propagate.

13.5 Running Dagster, Prefect, and Airflow at once

Three in one company is over-engineering.

13.6 Many consumers without contracts

One change breaks five teams.

13.7 Deprioritizing observability

Users discover the incident first.

13.8 Deploying straight to prod without CI

Skipping PR review → mistakes you cannot explain away.

13.9 No environment separation

Accidents where prod data is modified from dev.

13.10 Trusting auto-generated documentation alone

Auto docs only show structure. The business explanation comes from people.


Chapter 14 · Checklist — 12 Markers of Data Pipeline Maturity


Chapter 15 · Next Up — Season 5 Ep 5: "Semantic Layer, Metrics Store, Reverse ETL"

If pipelines make the data, the semantic layer speaks it. Ep 5 is the axis that connects data to business language.

The 2025 version of the promise that "you define the meaning of data exactly once."

See you in the next post.


Summary: Data orchestration in 2025 is the stage where the principle that "pipelines are software too" gets completed. dbt became the standard for transformation, SQLMesh complements it with increments and versioning, and Dagster arrived with asset-centric orchestration. Airflow relaunched with the 3.0 overhaul, and Prefect 3.0 is the Pythonic alternative. Data contracts and observability push engineering quality upward, and CI/CD plus SLOs plus on-call have become daily life for a data team. The stack varies with scale and context, but the core principles boil down to five words: "Git, tests, contracts, observability, rollback." The next episode covers what sits on top of all of it — "the layer that speaks business language."

Comments

No comments yet.

Sign in to leave a comment