Airflow & dbt

A green DAG and a wrong number are not mutually exclusive

Modern stacks are better instrumented and no more honest about missing rows. Decim applies the same reconciliation, and the same scepticism about what the definition actually covers.

What still goes wrong

The DAG is not the whole pipeline

Connections, variables and pools live in the metadata database. A dynamically generated DAG is defined by a config table, not by the file in your repository.

Task success is not data success

A task can exit zero having written nothing, or having written twice. Decim reconciles counts across tasks rather than trusting the state.

dbt tests pass on what arrived

They validate the rows in the table. They cannot see the rows that never made it there.

Spans give you stage counts for free

Where a pipeline emits OpenTelemetry, per-stage row counts arrive with no repository access at all.

Get started

Bring us a pipeline that broke last week

The fastest way to evaluate this is a real incident you already know the answer to. If Decim gets it wrong, that is a far more useful demo than one where it doesn't.