Blog

Latest news, updates, and insights from the Interlace team.

August 10, 2026

Migrating jaffle_shop: A Real dbt Project, End to End

We migrated dbt's own demo project to Interlace and wrote the whole thing down. Four of five models converted with a two-line regex. The fifth is where the actual work is, and where the interesting difference lives.

Read more

August 9, 2026

No Jinja: What Replaces Templating When SQL Is an AST

Jinja does four separate jobs in a dbt project, and they need four different answers — not one templating language. Parsing replaces ref(), Python replaces loops, and canonical SQL means reformatting a model does not rebuild it.

Read more

August 8, 2026

Python Models: dbt and Interlace, Side by Side

dbt Python models participate fully in the DAG — that part is often misreported. The real differences are which platforms run them, which materialisations they support, and whether the function is testable on its own. A fair comparison, verified against both sets of docs.

Read more

August 7, 2026

Twenty-Five Million Rows in Five Seconds, and How to Check

A 25M-row DAG exercising every strategy, with a Python model in the hot path, built on one machine in 5.1 seconds. Here are the numbers, the machine, and the commands to reproduce all of it yourself.

Read more

August 6, 2026

Two Planes: What materialise Means in 2.0

Interlace 2.0 makes materialise the ownership axis and deletes the export block. One key changed meaning, which is why this is a major version. The reasoning, and the migration.

Read more

August 5, 2026

200 OK Means Fsynced

The 0.x stream log was an in-memory queue that lost data on restart. The rebuilt one runs synchronous=FULL, so a 200 survives power loss and not merely a process crash. What that costs, and what it buys.

Read more

August 4, 2026

A Python Model Is Just a Function

A .py model and a .sql model are the same kind of node. Either can depend on the other, in either direction, and the planner does not care which you wrote. Here is that claim running in the hot path of a 25-million-row DAG.

Read more

August 3, 2026

Sandboxes That Cost Nothing

An environment is not a copy of your data, it is a set of views over it. How fingerprinted snapshots make a dev sandbox free, promotion an atomic view swap, and rollback the same operation run backwards.

Read more

August 2, 2026

The IR Is a sqlglot AST

Dropping Ibis removed a heavyweight dependency for zero lost capability, because Ibis compiles to sqlglot — which is already our intermediate representation. What the rebuild bet on, and what it refused.

Read more

August 1, 2026

Why We Built a Unified Abstraction

A typical data stack runs four tools to do one job, and the failures live in the seams between them. Here is the case for making a model the only abstraction — and where one abstraction is not enough on its own.

Read more