Skip to content

Step vs framework boundaries

Canonical rules: Principles → Step ↔ framework.
This page is a short pointer for the Architecture section.

Receive data → transform → return data. Transform logic only.

Framework owns: feed, StorageSession.write, flush, manifests, registry checkpoint, Prometheus, UI, Airflow, Ray transport.

Forbidden in step Allowed in step
I/O, storage APIs, pyarrow/psycopg/boto3 Pure functions, in-memory registry
Prometheus / Airflow / Ray / Streamlit widgets ProcessResult, ProcessorBatch
Parsing DRTML / YAML framework.algorithms (policy stays domain)
Homegrown embed/cluster math Thin hooks.py + manifest_path_adjacent

domain.* is passthrough only — framework must not interpret it.

Dashboards must include CPU and RAM panels. Full ownership table, params rules, and checklists: Step and framework.

  • test_step_domain_boundaries.py — forbidden snippets in domain.
  • test_layer_import_boundaries.py — reverse import edges.