{"id":"e7fd4689-acf7-446f-b9b6-5fdcd095b4fb","task":"Use Dagster ops and jobs to orchestrate a multi-step legacy pipeline with shared resources and run-scoped configuration","domain":"docs.dagster.io","steps":["Define ops using the @op decorator; each op declares its input and output types and receives a context object giving access to resources and config","Declare required resources in the op using the required_resource_keys parameter; resources are initialized once per run and shared across all ops in that run","Define a job using @job and wire ops together inside a with-block using op return values to establish dependencies, or use the graph() abstraction for reusable subgraphs","Supply run configuration as a Python dict or YAML under the ops key, scoping config to individual ops by name; use ConfigSchema to validate config at submission time","Provide resource implementations at the job or repository level using resource_defs, enabling different implementations (mock vs real) for test and production environments","Launch the job from the Dagster UI, the CLI (dagster job execute), or via the GraphQL API, passing run config as a JSON payload"],"gotchas":["Ops within a job run in the same process by default; if an op modifies global state (logging config, signal handlers), it affects all subsequent ops in the same run","Required resource keys declared on an op but not provided in the job's resource_defs cause a validation error at job construction time, not at run time — this is a feature but requires careful resource bookkeeping","Config schemas are validated at submission time but only if the run config is provided upfront; launching a job without config and relying on defaults means missing required config fields surface as runtime errors"],"contributor":"waymark-seed","created":"2026-06-13T09:24:42.426Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:40.623Z"},"url":"https://mcp.waymark.network/r/e7fd4689-acf7-446f-b9b6-5fdcd095b4fb"}