Build reproducible workflows
Crab Workflow adds reproducible pipeline stages to repositories that already use Crab for large files. You declare a command, its inputs, and its outputs. Crab then records the successful state, reuses matching results, and helps teams compare metrics and experiments without adding a separate data server.
Workflow execution path
Scroll horizontally to explore the full diagram →
Use Workflow when a repository has commands that should be reproducible: data preparation, model training, evaluation, report generation, asset builds, or any expensive step where "same inputs, same outputs" should be reusable.
What Workflow adds
Crab's file layer handles large content in git by storing pointers in commits and bytes in object storage. Workflow sits above that layer:
| Layer | What it does | Typical commands |
|---|---|---|
| Git | Tracks source, workflow files, params, lockfiles, and pointer blobs | git commit, git diff |
| Crab file storage | Chunks, deduplicates, hydrates, dehydrates, pushes, and pulls large files | crab add, crab push, crab hydrate |
| Crab Workflow | Runs reproducible stages, caches outputs, compares params and metrics, and manages experiments | crab run, crab exp, crab metrics, crab plots |
The workflow layer is additive. A repo can use Crab for large files without Workflow, and a Workflow repo still uses normal git commits and branches.
Separate committed state from local runtime state
A workflow repo usually commits these files:
crab.yamland optional*.workflow.yamlfiles declare stages.params.yamlor other params files hold values used by stages.crab.lockand optional*.workflow.lockfiles record the exact state that ran successfully.- Source files, scripts, configs, and small metrics live in git.
- Large stage outputs can be Crab-managed files backed by object storage.
Local runtime state stays out of git:
.crab/cache/stages/stores local stage cache entries..crab/workflow/runs/stores run journals for crash recovery and audit..crab/workflow/exp/stores local experiment metadata.- Queued experiment logs and temporary worktrees are local until pushed.
Use DVC-style concepts with Crab storage
Workflow is inspired by DVC's pipeline and experiment model, but it is designed to live inside Crab's serverless git remote:
- Stages use familiar
deps,outs,params,metrics, andplots. crab reprois an alias forcrab run.crab stage addauthors DVC-style stage definitions.crab expruns experiments in temporary worktrees.crab queueandcrab exp queuerun batches of experiment overrides.crab workflow push-cache --allshares stage cache through the configured Crab remote.
If you are moving from DVC, start with Migrating from DVC.
Follow the learning path
- Quickstart: run a small pipeline with Workflow.
- Concepts: understand stages, cache, lockfiles, journals, and experiments.
- Authoring stages: write production
crab.yamlfiles. - Running pipelines: use target modes, cache controls, and JSON output.
- Experiments and Hydra: compare parameterized runs.
- Remote cache and CI: share cache results with teams and automation.
- Operations and troubleshooting: recover from common failures.
Command-level details remain in Automation & Pipelines and CLI Reference.