dpcsVersion: "1.0.0"
id: "valid.execution.model"
version: "0.1.0"
interface:
inputs:
- id: "customer_raw"
name: "Customer Raw"
contractRef: "contracts/customer_raw.odcs.yaml"
purpose: "Raw customer dataset input"
outputs:
- id: "customer_clean"
name: "Customer Clean"
contractRef: "contracts/customer_clean.odcs.yaml"
purpose: "Cleaned customer dataset output"
contractReferences:
- id: "customer_raw_contract"
type: "odcs"
location: "contracts/customer_raw.odcs.yaml"
- id: "normalize_customer_transform"
type: "dtcs"
location: "transforms/normalize_customer.dtcs.yaml"
steps:
- id: "normalize_customer"
type: "dtcs:transform"
contractRef: "normalize_customer_transform"
inputs:
- id: "customer_raw"
outputs:
- id: "customer_clean"
graph:
edges: []
dataFlow:
- from: "interface.inputs.customer_raw"
to: "steps.normalize_customer.inputs.customer_raw"
dataset: "customer_raw"
- from: "steps.normalize_customer.outputs.customer_clean"
to: "interface.outputs.customer_clean"
dataset: "customer_clean"
execution:
requiredCapabilities:
- "batch.compute"
resources:
memory: "4Gi"
processor: "2"
isolation:
- "container"
externalDependencies:
- id: "warehouse"
capability: "sql.readwrite"
availability: "required"
scheduling:
- mode: "scheduled"
cron: "0 2 * * *"
timezone: "UTC"
constraints:
earliest: "2026-01-01T00:00:00Z"
latest: "2026-12-31T23:59:59Z"
qualityGates:
- id: "pre_run_schema"
purpose: "Validate input contract before normalize"
category: "contractValidation"
criteria:
- contractRef: "customer_raw_contract"
type: "odcs"
onSuccess: "continue"
onFailure: "abort"
placement:
kind: "beforeStep"
stepId: "normalize_customer"
failureSemantics:
- id: "normalize_retry"
scope:
kind: "step"
stepId: "normalize_customer"
category: "execution"
triggers:
- "transientExecutionFailure"
responses:
- "retry"
retry:
eligible: true
maxAttempts: 3
delayPolicy: "exponential"
lineage:
datasets:
- dataset: "customer_raw"
consumedBy:
- "normalize_customer"
contractRef: "customer_raw_contract"
- dataset: "customer_clean"
producedBy: "normalize_customer"
steps:
- stepId: "normalize_customer"
contractRef: "normalize_customer_transform"
provenance:
originating: "valid.execution.model"