Cross-platform data lineagefrom source to semantic model

Callisto traces every column from raw sources through data marts and semantic models, then shows on the pull request what a change touches.

callisto
Callisto
Rename customer_idPR #517 · priya.k

analytics.orders · 5 readers checked

4 / 10 nodes drawn

01 · The problem

Why lineage goes dark at the edges

Snowflake maps its tables. dbt maps its models. Airflow maps its tasks. The edges between them belong to no one, and that is where a rename that passes every test still breaks something.

BI extracts

The finance dashboard.

The warehouse sees a 06:00 query, not a Tableau dashboard with twelve daily viewers.

Reverse-ETL

The CRM sync.

Rename one of its four columns and the sync fails in a tool your data team never opens.

Notebooks

The Monday notebook.

It reads customer_id by name, its author has left, and it breaks the first Monday after merge.

02 · Who it’s for

Who needs the whole map

An engineer asks who reads a column. A platform lead asks what depends on the warehouse that nobody owns. Both answers cross platforms.

Data engineer

“Who else reads this column?”

Keeps them up

A rename that passes every dbt test and still breaks a Tableau extract, a CRM sync, or a notebook nobody has opened in a year.

What they get

Every reader of the column, in every system, on the PR. Keep an alias, or ping the owner before merge.

03 · How Callisto closes the gap

The same rename, traced
past the warehouse

One revenue calculation, followed through every system that reads it, and posted as one comment before merge.

What the PR shows

models/marts/orders.sqlPR #517 · priya.k
8select
9order_id,
10−customer_id,
10+customer_id as customer_key,
11order_ts,
12amount
13from analytics.stg_orders

PR checks

Compiles

dbt tests pass

Warehouse lineage flags 1 model

What Callisto posts

ccallisto

3 readers break, 1 to confirm

customer_id is renamed. Four readers outside dbt still select it.

Reader Status

dbt · fct_revenue

already updated in this PR

fixed

Airflow · daily_rollup

parsed from DAG code

breaks

Tableau · revenue_daily

extract field customer_id no longer exists

breaks

Reverse-ETL · orders_to_crm

field map customer_id → Account ID

breaks

Notebook · churn_features.ipynb

name-matched, marked inferred

inferred

Upstream, not just downstream.

Callisto follows a column back to the app table and the Airflow task that loads it, so a change to the source shows up on the PR too.

Column-level, across the boundary.

Edges are parsed from SQL, DAG code and sync definitions down to the column, so a rename reaches only the readers that select it.

Inferred edges say so.

Where no connector or lineage event covers a tool, name-matched edges are marked inferred. A reviewer can tell a fact from a guess.

04 · What it reads

Where the
graph reaches

Upstream sources, the warehouse and its transforms, and the tools that read from it. Each edge is labelled with how it was found.

Read-only, except for the comments it posts on pull requests.

Sources

Sources

analytics.orders · customer_id

Upstream

AirflowDAG code and task SQLparsed

OpenLineage ProvidersRun events from any emitterreported

ETL PipelinesVia the load job that reads themparsed

Catchessource changes that reach the warehouse a day later.

Tags show how each edge was found.

05 · Compared

Why each tool stops at its own edge

Each maps its own platform well. None follows a column across all of them, and none checks the pull request before merge.

Question Warehouse-native lineage dbt lineage Data catalogs Callisto
What does it map? Tables and views inside one warehouse Models and sources in one dbt project Assets its connectors have ingested Every hop, from source table to dashboard
Upstream of the warehouse? Stops at the first table Declared sources only Where a connector exists App databases, Airflow tasks, lineage events
Downstream of the warehouse? Sees queries, not the tools behind them Exposures, if someone declared them Where a connector exists BI extracts, reverse-ETL syncs, notebooks
When do you see it? After the change is deployed In the project docs When someone opens the catalog On the pull request, before merge

Each tool is right about its own platform. The breaks happen in the edges between them.

06 · FAQ

FAQs

What it reads, how it finds edges between tools, and what it changes.

It is lineage that follows a column across tools, not just inside one. Callisto traces it from the app database and the job that loads it, through Snowflake and dbt, into the BI extracts, reverse-ETL syncs and notebooks that read it.

Join waitlist

See where your
lineage actually ends.

Thirty minutes, your estate, one open PR. Callisto traces it past the warehouse, posts a comment, and changes nothing else.

Evaluating for*

Single-tenant deployment. Callisto reads metadata, lineage and run history. It is read-only outside the comments it posts.

  1. 0–10 min

    Connect

    GitHubSnowflakeAirflow
  2. 10–20 min

    One open PR that renames a column

    Pull request #517
  3. 20–30 min

    Follow the chain together

    Readers of analytics.orders.customer_id,
    every system

    AirflowTableauReverse-ETL