Data Product Factory
Build data products end to end, in one pane of glass.
From a request for data to a governed table in production. Everybody works on one record, and each decision is ready for an audit.
The factory's interface, playing Policy portfolio snapshot through Source, Refine and Deliver: each step ticks, each lands in the activity log, and each gate closes with a name and a time.
document.savedproduct.scope_setdemand.answeredgate.decidedproposal.acceptedmodel.savedcontract.signedgate.decidedvalidation.passedsignoff.recordedgate.decidedrelease.promotedOne pane of glass. Every layer, every reader.
Today, each layer lives in its own tool. In the factory, the layers are one record, and everybody reads the same one.
What changes.
Bring the messy request.
Today it sits in email, tickets and spreadsheets. Here it becomes one brief with an owner.
Everybody decides on one record.
Owners, engineers and auditors work on the same record. Agents write the first drafts.
The agreement keeps it true.
The table ships to its agreement. In production, the factory checks it against the agreement.
Audit-ready by design. Each decision has a name, a time and a version.
- Revenue ops asked for Policy portfolio snapshot
product.created - Katrin Vogel approved the load
gate.decided · approval to load - Revenue ops accepted agreement 2.0.0
gate.decided · agreement - Revenue ops signed off the integration test
gate.decided · sign-off - Dana Ruiz promoted release #2
release.promoted
A person outside the team closes each gate.
The person who asks cannot sign.
Each event in order, with its version.
Each column traces to the requirement behind it.
Configured, not coded. Your stack, one setting each.
The process is one file, and each connection is one setting. The factory checks both when it starts.
Phases, steps, gates and roles live in one file. To change the process, you change the file.
DPF_WORKFLOW=workflow.yaml
Tables go to Unity Catalog. The checks run as Delta constraints and Lakehouse Monitoring.
DPF_WAREHOUSE_URL=databricks://
People sign in with their company account. Entra groups set each role.
DPF_IDENTITY=entra
The build plan goes to Jira as issues. Azure DevOps works the same way.
DPF_TRACKER=jira
Start with the demo.
Four products on synthetic insurance data. Select Tutorial for a walkthrough with fifteen stops.
Open the factoryBring a real use case.
One data product, on your Databricks and your Entra ID, from request to production.
Write to PhilippQuestions.
How is this different from a data catalogue?
A catalogue describes the tables that exist. The factory controls how a new table comes to exist: who asked, who approved, and what it promises.
Do the agents decide anything?
No. An agent writes a draft. A named person accepts it, or writes the text by hand.
What do the agents see?
You choose: the full context, the metadata only, or nothing. One setting controls it.
Can it run in our environment?
Yes. It is one small web application with its own database. It runs next to your Databricks workspace and signs people in with your Entra ID.
What happens when the process changes?
You change workflow.yaml. The factory checks the new file when it starts, and it refuses a process with a missing step or a wrong order.
Is it in production somewhere?
Not yet. It is a prototype, and the demo runs on DuckDB. The Databricks, Entra ID and Jira connectors follow each vendor's published API, and they have not yet run against a customer tenant.