Lakeflow Spark Declarative Pipelines (SDP) on Databricks (2026)
Lakeflow Spark Declarative Pipelines, the platform formerly known as Delta Live Tables, is how data engineering on Databricks gets written in 2026. You declare the tables and the transformations; the engine handles incremental refresh, streaming, quality enforcement, change data capture, and the dependency graph. This is the practitioner-level guide: when to reach for SDP, what its operational shape is, where it beats dbt and where they pair, and the patterns that hold up at scale.
The shape of data engineering on Databricks shifted twice in three years. First when Delta Live Tables became production-grade. Second when it was rebranded Lakeflow SDP and folded into the broader Lakeflow family alongside Lakeflow Connect (ingestion) and Lakeflow Jobs (orchestration). The model didn't change; the positioning did. SDP is no longer "the new way to do batch ETL"; it's the default declarative compute model for any pipeline that goes bronze → silver → gold.
What you actually write
A pipeline is a notebook (or a set of them) where each cell declares a table, streaming or materialized, and the transformation that produces it. The engine reads the whole notebook, builds the DAG, figures out which tables need full refresh and which can be incremental, schedules the work, runs the quality expectations, and writes everything into Unity Catalog. You write the SQL or PySpark. The runtime does the orchestration.
Streaming tables vs materialized views
Two table types matter. A streaming table is append-only and incremental, it processes new rows since the last update. A materialized view recomputes its definition either incrementally (where SDP can prove correctness) or as a full refresh. Most bronze layers are streaming tables (raw events landing forever). Most silver layers are streaming tables with expectations and dedup. Most gold layers are materialized views (joined aggregations that get queried by dashboards).
Expectations: the quality contract that lives with the code
Inline expectations are the single biggest reason teams adopt SDP after they've tried building the same thing in raw Spark. Three modes: track-only (record violations, don't drop), drop-bad-rows (drop the row, log it), and fail-the-update (halt the pipeline). The right mix is per-pipeline: bronze gets track-only because the goal is fidelity; silver gets drop-or-fail because the goal is quality; gold rarely needs them because the silver contract already enforced what mattered. The expectations show up in the SDP UI and in lineage automatically, your data quality is no longer a separate dashboard you forget to look at.
APPLY CHANGES INTO: the CDC story
Change data capture used to be a chapter-long discussion of merge windows, type-2 dimensions, and
late-arriving event handling. APPLY CHANGES INTO collapses most of that into a single
declaration:
APPLY CHANGES INTO target_table
FROM stream(cdc_source)
KEYS (customer_id)
APPLY AS DELETE WHEN op = 'D'
SEQUENCE BY event_ts
COLUMNS * EXCEPT (op)
STORED AS SCD TYPE 2; SDP handles deduplication, ordering by sequence column, late-arrival re-application, and the SCD2 history. The result is that CDC stops being a project and becomes a pattern.
SDP and Lakeflow Connect: ingestion that doesn't fight back
Lakeflow Connect lands managed connectors for Salesforce, Workday, ServiceNow, MySQL, Postgres, SQL Server, and a growing list of SaaS sources directly into UC tables. The end-to-end pattern in 2026 is: Lakeflow Connect → bronze streaming table → SDP transforms to silver and gold → Lakeflow Jobs orchestrates and triggers downstream. No more bespoke ingestion code. No more cron-driven sync jobs. The whole ingest layer becomes declarative.
Where dbt fits
Teams already heavily invested in dbt don't need to abandon it. dbt-databricks works against SQL Warehouses and remains the cleanest tool for modeling-style transformations done by analytics engineers in SQL. The pattern that works: SDP owns the streaming and quality-critical bronze/silver layer; dbt owns the gold-layer marts that analysts iterate on. Both write into UC; lineage stitches automatically.
Operational shape
SDP pipelines deploy as Databricks Asset Bundle artifacts. They run on serverless compute by default. Triggered (event-driven) and continuous modes are both available; continuous is for sub-minute latency, triggered is for the 90% of pipelines that just need to fire on data arrival or a schedule. The Lakeflow Pipeline UI surfaces lineage, run history, expectation violations, and per-table refresh status, the operational view you used to assemble from five separate dashboards.
What's in Volume 3 on this
Two chapters and the running retail-analytics example. Chapter 31 covers ingestion with Auto Loader
and Lakeflow Connect, the source layer that feeds SDP. Chapter 32 is SDP end-to-end: streaming
tables, materialized views, expectations, APPLY CHANGES, and a full worked pipeline
that takes the retail event stream from raw landing to gold-layer aggregations ready for
Lakeflow Jobs to schedule downstream consumers.