Tag Data Objects by methodology role — Hub, Link, Satellite, PIT, Bridge for Data Vault; Source, Staging, Integration, Mart for layered warehouses. The shipped classifications cover the common cases; extend them for your house standards.
Data warehouse delivery
Generate the warehouse — DDL, stored procedures, deployment scripts, tests, documentation — from one captured design. The pattern lives in the template; you only write it once.
Who this is for
Data engineers, delivery teams, and the architects who decide how the warehouse is built. Most often: teams that have committed to a methodology (Data Vault, Persistent Staging, dimensional) and want to stop hand-writing every table and procedure that the methodology implies.
The pain we hear most often: "We spend weeks writing CREATE TABLE statements and stored procedures that all follow the same pattern. When we change the pattern, we have to hunt through 200 scripts to update it." The methodology is supposed to give you leverage; the implementation work cancels most of it.
How ADL is configured for this
This is the heritage use case — what ADL was first built for. Every layer is well-trodden, and the starter solutions get you a working warehouse on day one.
Template mappings link each Data Object to one or more templates. A Hub maps to the Hub-DDL template + the loading-procedure template + the documentation template. The mappings live alongside your metadata in git — diffable, reviewable, reusable.
Run the code generator. The same metadata produces table DDL, stored procedures, deployment scripts, and documentation pages — landing in your project folder, ready for code review and CI/CD. Change the pattern once, regenerate everything.
In practice
A common scenario: you're starting a Data Vault on Snowflake. The methodology choice is made; you don't want to hand-write every Hub, Link, and Satellite.
- Install a starter. Pick any of the Data Vault sample solutions from the Marketplace. These starters ship with pre-configured Data Vault classifications, template mappings for Hub/Link/Satellite patterns, and sample metadata you can replace with your own.
- Bring your design. Either import metadata from an existing source database via the Metadata Importer, or describe your Data Objects directly in the app. Tag each as Hub, Link, or Satellite.
- Configure. Assign templates to Data Objects or the mappings between Data Objects. Check the intended outcomes in the Code Preview and tweak the templates as needed
- Generate. Click Generate in the Code Generator. The starter's templates emit the view definitions, the loading procedures, the deployment script, and a Markdown reference doc. Each artefact is one file per metadata object — predictable, reviewable.
- Deploy. Commit the generated files. CI/CD picks them up and deploys to the target environment. Some sample solutions also generate their own containers for local testing. No proprietary database holds your metadata; the entire warehouse is reproducible from the repo.
- Change the pattern. Decide you want a new audit column on every Satellite. Edit the Satellite template once. Regenerate. Every Satellite gets the change.
What ships today
- Five production starter solutions — Data Vault Virtual DW (Snowflake), Data Vault Physical DW (SQL Server), Data Vault Virtual DW (SQL Server), Persistent Staging Area (Snowflake), Persistent Staging Area (SQL Server). Plus a Microsoft Fabric Persistent Staging sample in preview. See the sample designs reference.
- 20+ production templates — staging, integration, Data Vault Hub/Link/Satellite, deployment scripts, Markdown documentation. Browse the template library.
- DIRECT framework integration — the Testing & DIRECT reference implementation wraps generation with batch orchestration, control logging, and parameter management. Code generation + delivery, not just code generation.
- Read the philosophy — Starter solutions for every platform and Agnostic philosophy on the blog.
Try it
Install any of the Data Vault sample solutions from the Marketplace, generate, and run. You'll have running output in minutes.