demo/pipeline/app.py in the repository.
prep → train ×3 (in parallel) → evaluate → package. There is no DAG object: dependencies are plain Python.
.remote() blocks until that step’s container returns, .map() fans out one container per input, and a
shared volume carries the files between stages.
- The quality gate in
run_pipelineaborts if the best model’s MSE is above 5.0: put your own checks there. - To run it nightly, wrap
run_pipelinewith@cron(when="0 2 * * *")(see../cron). - The dashboard’s Apps page lists the four functions in execution order; Containers shows the fan-out.

