DRTML overview
DRTML is the Framework’s declarative workload language. A step ships *.drtml (plus optional fragments) as a machine-readable execution contract: run type, params, inputs/outputs, store profiles, metrics, UI, dashboard views, and orchestration metadata.
The Framework treats that contract as a structured artifact that can be parsed, validated, semantically checked, compiled into typed plans, inspected, generated by software or external AI, repaired from structured validation errors, and executed without embedding infrastructure code in the domain package.
It is more than “YAML configuration.” Older drtml_version: 3 manifests are not accepted. The public surface is v4 only; the loader lowers it into internal runtime plans.
Load and compile
Section titled “Load and compile”main *.drtml → resolve relative include paths / globs → deep-merge fragments (entry wins) → lower v4 source → internal StepManifest → validate lowered contract → compile_step_manifest → runtime plans (StoragePlan, feed/mapping/reduce/metrics/evaluation/embed)The DRTML layer performs no dataset I/O. Runtime consumes compiled plans.
Human authors and external agents compose DRTML from Framework primitives; see AI & Automation and Compare.
Public v4 shape
Section titled “Public v4 shape”drtml: 4step: normalize_textrun: type: partition processor: batch: acme_steps.normalize.processor:process_batchstorage: default: artifacts stores: artifacts: {backend: local, root: /tmp/drtoller-data}inputs: documents: schema: {document_id: string, text: string} run: mapping.upstream_runs feed: {batch: 256}outputs: normalized_documents: schema: {document_id: string, text: string} from: documentsparams: runtime: metrics_enabled: true document_batch_size: 64Package layout
Section titled “Package layout”src/acme_pipeline_steps/normalize/ normalize.drtml fragments/ params.drtml ui.drtml metrics.drtml hooks.py processor.pyPackage DRTML files as distribution data. Airflow/UI discover their root through deployment configuration; manifest_path_adjacent resolves a main manifest from a thin hook.
What to read next
Section titled “What to read next”- Manifest reference
- Datasets and storage
- Feed reference
- Metrics and dashboards
- Streamlit form schema
- Execution and orchestration
- Extending DRTML
Boundaries
Section titled “Boundaries”Steps do not parse DRTML. The parser does not perform parquet/database I/O. A YAML field without a compiled/runtime consumer is not a supported feature.