-
I'm finding it difficult to follow all of the deployment-related documentation (though it's definitely helpful), because there's overlapping docs and concepts spread across OSS, serverless, hybrid, and then all 3. Here's my current understanding. Daemon - long-running process needed for schedules, sensors, queued run coordinator, monitoring worker runs and triggering retries Storage gRPC server - loads code that defines our Dagster assets (ops, jobs, assets, schedules, etc) and makes metadata about those assets available via a GraphQL API Execution Run launcher - a class invoked by the daemon when it receives a run from the coordinator. This class initializes a new run worker to handle execution. Depending on the launcher, this could mean spinning up a new process, container, Kubernetes pod, etc. Web server - UI for visualizing jobs, assets, and ops, as well as starting jobs. Some questions. Dagster hosts the following in Dagster Cloud:
The user hosts:
I get that the Agent relays data to/from Dagster Cloud. Does it also serve the role of the run launcher? What happens with the DefaultRunLauncher if no executors are available? Does the op get queued using the runs database? How do you configure the Run Worker? I'm not seeing a section on that. I'm a little confused by how a run launcher triggers one or more run workers, which in turn trigger one or more executors? In general, I'm confused on how the job execution flow works within a hybrid deployment. Is it possible to use a celery executor with a hybrid deployment? Is the Dagster-hosted run storage accessible outside of Dagster cloud? That seems like the only way that it would work. Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 8 replies
-
Hi @skeller88 - the overall understanding you lay out here is more or less entirely correct. Happy to mop up the specific questions here:
Let us know if there's anything else we can help with! |
Beta Was this translation helpful? Give feedback.
-
In Dagster’s hybrid deployment, the main concepts often cause confusion: Agents connect your cloud control plane with your self-hosted compute. They make it possible to run pipelines where your data lives, while still managing orchestration from the cloud. Launchers decide where a run should be executed (e.g., local, Kubernetes, ECS). Executors define how tasks inside a run are parallelized or processed (e.g., multiprocess, celery). Workers are the actual processes that carry out the computation. Think of it this way: the agent bridges cloud and local, the launcher picks the environment, the executor manages task execution strategy, and the workers do the work. Tools like Agentra, which also operate with agents for bridging workloads, follow a similar principle—separating orchestration from execution to keep systems scalable and flexible. |
Beta Was this translation helpful? Give feedback.
Hi @skeller88 - the overall understanding you lay out here is more or less entirely correct. Happy to mop up the specific questions here: