Run the same task code in your Python process, on a devbox, or on a remote cluster.

Run modes

Union.ai supports three execution modes, letting you choose the right trade-off between speed and fidelity at each stage of development:

Two things vary, not one

Each mode answers two separate questions, and it helps to keep them apart:

  • How the task runs. Either in-process, directly in your Python interpreter, or on-cluster, inside a container that a Flyte cluster schedules. The --local flag selects in-process.
  • Where the cluster is. Either a local cluster on your own machine, or a remote cluster somewhere else.

The devbox is why the distinction matters: it is a real Flyte cluster, so tasks run on-cluster in containers, but it runs on your laptop. It is on-cluster and local at the same time.

Throughout the docs, remote always answers the second question. A remote cluster is one that is not on your machine. Containerized execution is called on-cluster, never remote.

In-process On-cluster
Local machine Local (--local) Devbox
Remote cluster Remote
Aspect Local (--local) Devbox Remote
⚡️ Execution In-process Python On-cluster, local Docker On-cluster, remote
🐳 Docker required No Yes No (remote build)
💻 Flyte UI TUI, or the console with --tracked Yes (localhost:30080) Yes
📦 Container images Ignored Built locally Built locally or remotely
🔀 Parallelism Sequential Cluster-level Cluster-level
⭐️ Best for Fast iteration, debugging Testing container builds, full Flyte features Production, GPUs, scale

The same task code runs unchanged across all three modes. Start with local execution for fast feedback, move to the Devbox to validate on-cluster execution, then deploy to a remote cluster for production.