Pipeline 01
A source database to a dashboard
Land the extract in bronze, clean it into silver, then build the gold table that a dashboard reads.
Templates in development
Written for Databricks, Snowflake and Fabric and tested on DuckDB. None has run on a real platform yet, and none is released.
Pipeline shapes
Most production pipelines follow one of about ten shapes, and each shape has a known correct form on each platform. Emolysis starts from a tested template for the shape and the platform you use, instead of writing a pipeline from scratch. Each template comes with test fixtures and expected outputs that run on DuckDB on your machine before anything reaches your platform.
Templates for all ten shapes are written for Databricks, Snowflake and Microsoft Fabric, and their golden tests pass on DuckDB. None has run on a real platform account yet, and none is released.
The ten shapes
The lineup
Load
Land files, extracts and database tables in bronze tables, typed and checked on load.
Files, extracts, source tablestoTyped bronze tables
Load
Append only the rows that arrived since the last run, tracked by a watermark.
An append-only sourcetoNew rows in the target
Sync and history
Apply inserts, updates and deletes from a change feed to a target table.
A change feedtoA table in its current state
Sync and history
Keep the full history of a dimension, with a validity range for every version.
Current dimension recordstoA dimension with every version
Load
Copy a source in full on a schedule and keep dated copies for a set retention period.
The whole source, each runtoA replaced table or dated copies
Repair
Re-run a pipeline for a past date range, one partition at a time, without touching the rest.
A pipeline and a date rangetoReplaced partitions
Repair
Reprocess the right time windows when facts arrive after the period they belong to.
Facts after their periodtoCorrected windows
Model and serve
Turn raw bronze rows into clean silver rows: one row per key, with consistent types and names.
Bronze rowstoA silver table and a quarantine table
Model and serve
Build the metrics tables that dashboards and reports read, at a declared grain.
Conformed silver tablestoGold metrics tables
Model and serve
Push curated gold data back into business applications and operational databases, safe to re-run.
Gold tablestoBusiness applications and databases
Not sure which
Describe what the source does, such as files arriving, rows changing or facts showing up late, and see which shape fits.
Which shape fitsBeyond one shape
Most real pipelines chain several shapes, from the first landing to the dashboard. See four common chains.
How shapes combineWhich shape fits
Start from what your source does, not from the name of a pattern. Each row links to the shape that handles it.
Shapes in a row
Landing, cleaning, keeping history and serving are different jobs, so a production pipeline is usually several shapes in a row. Emolysis composes them.
Pipeline 01
Land the extract in bronze, clean it into silver, then build the gold table that a dashboard reads.
Pipeline 02
Mirror the source's current state, keep every version of the dimension, then report on facts joined to the version that was true at the time.
Pipeline 03
Append new events with a watermark, correct the windows that late events touched, then refresh the metrics.
Pipeline 04
Replay a date range after a fix, rebuild the gold table for it, then push the corrected values into the tools that use them.
Templates
A template is a known-correct form of one shape on one platform, with the tests that prove it. The agent fills it in instead of writing a pipeline from scratch.
The path
Pick the shape
The agent matches your request to one of the ten shapes and offers only the templates for your connected platform.
Fill the slots
It fills the slots from your catalog and your request, and asks you only for what is missing.
Prove it on DuckDB
The golden tests run on your machine. A red result sends the agent back to the template.
Deploy in native units
The agent deploys only after a green run, as your platform's own unit, such as a Databricks Asset Bundle.
Inside a template
Typed slots
Named placeholders such as the business key or the watermark column. Each slot has a type, such as column, columns, table, duration or enum, so a value cannot land in the wrong place.
Test fixtures
Small input tables that include the hard cases for the shape: duplicates, late rows, a malformed file, several changes to one key.
Expected outputs
The exact tables a correct run produces. A golden test compares the actual output with them, row for row.
A cost note
A short note on what a run of the template costs on the platform, so the price of a pipeline is no surprise.
Platform constraints
The platform features and versions the template needs, so it is offered only where it can run.
Each template is judged per platform: yellow when it passes on DuckDB, green when it also passes on the real platform. Nothing is released, so no template has a green mark yet.
Platforms
Each shape has its own correct form on Databricks, Snowflake and Microsoft Fabric. Databricks comes first. Snowflake and Fabric are planned.
The first target. Writes for Delta tables and Unity Catalog and deploys as Databricks Asset Bundles.
Writes for streams, tasks and dynamic tables, with Snowflake's own identifier rules.
Writes for lakehouses in OneLake and deploys notebooks to your Fabric workspace.
PostgreSQL is in development as a source, and SQL Server is planned as one; landing their data through Ingest (batch), Incremental append and CDC merge is planned. Every template is tested first on DuckDB, your local engine.
FAQ
A pipeline shape is a recurring kind of data pipeline with a known correct form, such as loading files into bronze, merging a change feed, or keeping history for a dimension. Data engineering is more repetitive than general software: about ten shapes cover most production work. For each shape and platform, Emolysis has a template with named slots, test fixtures and expected outputs.
Read the full answerMost real pipelines are several shapes in a row: ingest to bronze, dedupe and conform to silver, SCD Type 2 for a dimension, then aggregation to gold. Emolysis composes shapes like that. When a request truly does not fit any shape, the agent says so rather than improvising a pipeline it cannot test. You can still write that part yourself in the same project, with your own tests.
Read the full answerA golden test runs a pipeline on a fixed input and compares its output with an expected output, row for row. If they differ, the test fails. Each Emolysis template ships with golden tests built for its shape. The tests run on DuckDB on your machine. A red result sends the agent back to the template, and the agent deploys only after a green run.
Read the full answerSpeed and cost. DuckDB runs on your machine, starts instantly and needs no cluster, so a golden test takes seconds and spends no warehouse compute. That makes it practical to run the tests on every save, not only before a release. A template is only called ready on a platform after its cases also pass on that platform, and none has yet.
Read the full answerIn development · Not released
Templates for the ten shapes are written for Databricks, Snowflake and Microsoft Fabric, and their golden tests pass on DuckDB; none has run on a real platform yet. Early access is by invitation, for teams that want to help shape them.