Data Engineering Patterns¶
Pick a pattern. Pick a stack. Pull the branch. Start building.
What this is¶
Nine opinionated, production-informed reference implementations of common data engineering patterns — each available in 2–3 idiomatic stack variants. Every variant is a self-contained boilerplate starter: real code, a local dev stack, and a README that explains when to use it and when not to.
Start here¶
-
Landscape
Where each pattern fits in the modern data engineering landscape. Read this first if you are choosing a pattern.
-
Decision Matrix
Two tables: pick a pattern by use-case characteristics, then pick a stack variant by trade-off criteria.
Patterns¶
-
Batch Lakehouse
Scheduled Spark jobs writing to open table formats. Highest throughput, simplest operations, no sub-minute latency.
-
Streaming Lakehouse
Continuous Flink or Spark Streaming pipelines writing to Iceberg or Delta. Sub-minute latency with lakehouse query semantics.
-
ELT / Warehouse
dbt transforms data already loaded into a warehouse. Right when your warehouse is the system of record.
-
CDC Pipeline
Debezium captures database writes at the WAL level and streams them into a processing engine. Zero polling, sub-second capture.
-
Lambda Architecture
Parallel streaming (low latency) and batch (high accuracy) paths merged at query time. Use only when both are genuinely required.
-
Federated Query
Trino or Presto queries across multiple storage systems without data movement. Right for polyglot data estates.
-
ML Feature Pipeline
Compute and serve ML features from a feature store. Separates feature engineering from model training and serving.
-
Graph Processing
Spark GraphX or Neo4j+Spark for graph-native algorithms. Right when relationships are the query, not the filter.
-
Workflow Orchestration
Airflow, Prefect, or Dagster for scheduling and coordinating data pipelines. The glue between every other pattern.
-
:material-rdf:{ .lg .middle } Semantic Medallion
Extends Batch Lakehouse, CDC Pipeline, and Federated Query with RDF triples and SPARQL for entity deduplication and semantic reasoning across polyglot sources.
Architecture decision records¶
Key design decisions for the patterns library:
- ADR-0001: Pattern Matrix Repo Structure
- ADR-0011: Semantic Medallion Approach
- ADR-0012: RDF Storage — Jena TDB2 Choice
- ADR-0013: Entity Resolution Strategy
Browse all ADRs.