dbx-flame
A configuration-driven data engineering framework for Databricks. Onboarding a new dataset means writing a workflow YAML — never Python.
Why
Most Databricks pipelines grow one notebook per dataset. This framework inverts that: a single typed engine reads a workflow YAML and carries every dataset through the same five layers — Start, Pipeline, Typing, Policies, Output. A new source is a new YAML file, not a new code path.
The project is alpha — see Status for what's implemented today.
Key Capabilities
- Config-driven onboarding — declare an origin, a write verb and a target; the framework validates the combination and runs it. No per-dataset Python.
- Five typed layers — Start → Pipeline → Typing → Policies → Output, each reachable only
through a typed
Contextand a DataFrame, so every layer is independently testable. - Five write verbs —
APPEND,FULL,UPSERT,SCD2,COMPLETE_DELTA— layer-agnostic, so the same verb serves Inbound→Bronze or Bronze→Silver. - Gold is SQL (planned) — each Gold table will be a materialized view over Silver, in its
own
.sqlfile, so Silver's MERGEs never block it. See Gold. - A data quality gate, not a bolt-on — every batch is checked against a
Databricks DQX ruleset before it's written;
errorrefuses the batch,warnlogs and lets it through. - Fail fast, fail loud — invalid config and failed checks stop the run with one aggregated error report. Nothing logs an error and reports success.
- Ships as a wheel — src-layout package deployed via Databricks Declarative Automation
Bundles and run through
python_wheel_taskentry points. No notebook logic, nosys.pathhacks.
Quick Look
Two tasks, two YAML blocks — CSV into Bronze, then Bronze into Silver with SCD Type 1
upsert on CLAIM_ID:
# Inbound → Bronze
source.origin: csv
source.path: /Volumes/dev/source_data/inbound/
source.directory: CLAIMS
output.verb: append
output.schema_name: claims
output.table: CLAIMS_BRONZE
# Bronze → Silver
source.origin: delta
source.schema_name: claims
source.table: CLAIMS_BRONZE
output.verb: upsert
output.schema_name: claims
output.table: CLAIMS_SILVER
output.keys: CLAIM_ID
output.event_time.column: __EXPORT_DATE
No code changes for either step — both are entries in a workflow YAML deployed through the bundle. See 03_write_verbs.md for the full verb matrix.
Documentation
- 00_overview.md — goals, principles, glossary, layer diagram
- 01_architecture.md — layers, protocols, execution flow, extension points
- 02_config_schema.md — the typed config schema, parameter by parameter
- 03_write_verbs.md — verb semantics with worked examples
- 04_policies.md — the data quality gate, driven by a DQX ruleset
- 05_testing.md — unit and platform testing
- 06_roadmap.md — phased implementation plan and current status
Development
Targets Linux; on Windows, work inside WSL, since Spark doesn't run natively there. Needs a JDK (11 or 17, for PySpark), Python 3.11 (matches Databricks Runtime 15.4 LTS) and Poetry 2.x.
poetry env use python3.11 # once, to pin the interpreter
make install # runtime + dev dependencies
make test # unit tests with coverage
make with no target lists the rest. Platform tests are real Databricks jobs under
platform_tests/; see 05_testing.md.
Deploying to Databricks
The bundle in databricks.yml is configured to work with a Python wheel: it
builds the wheel, then deploys the bundle. Authenticate with a CLI profile or with
DATABRICKS_HOST / DATABRICKS_TOKEN:
databricks bundle deploy
Traceability
Every run that passes config validation writes an audit trail to your own catalog
(monitoring_{env}.audit.logs), not to vendor telemetry. Each row names the job, run and task
that produced it. The audit write comes first, so a run that can't log fails before touching
any data. Schema: 00_overview.md.
Status
Start, Pipeline (CSV + JSON + Delta), Typing, Policies (DQX), and all five write verbs are implemented and tested. The SAS origin and the Gold example view are not implemented yet. Full phase-by-phase status: 06_roadmap.md.
License
Apache 2.0 — see LICENSE.
Metadata
Release files for dbx-flame 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dbx_flame-0.0.2.tar.gz | 41.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dbx_flame-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 100.8 kB
Release files / dbx_flame-0.0.2.tar.gz
| Download URL | dbx_flame-0.0.2.tar.gz |
|---|---|
| Size | 41.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
db4b0277a732ae2df1086018ccc174c22f3c6e4bb3edef292433c927146f2bab
|
|
BLAKE2b-256 checksum How to use checksums |
5bbcc19296bdf347f11d814039213b7c78e39910b9ad1400123d2a47e95c5ac9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / dbx_flame-0.0.2-py3-none-any.whl
| Download URL | dbx_flame-0.0.2-py3-none-any.whl |
|---|---|
| Size | 59.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc3e587b36da9f930e8e1f88c1247921a21a0756209d413f519ff164f428c3bd
|
|
BLAKE2b-256 checksum How to use checksums |
cab6aa01c0448dec21e08b5d5bd4277644f34e905a419ad109636b00fcb30a10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency log