Tasks
The fundamental unit of compute in Flyte. A task is a strongly typed, versioned, containerized Python function that runs on a Kubernetes Pod.
Workflows
A directed acyclic graph (DAG) that composes tasks and other workflows into a meaningful execution pipeline.
Launch Plans
Templates for workflow executions. Bind default or fixed inputs, define schedules, and configure notifications.
Projects and Domains
Multi-tenancy primitives. Projects namespace your workflows, and domains (development, staging, production) control execution environments.
How these concepts fit together
Here is how the four concepts relate to each other at execution time:- You write tasks — Python functions decorated with
@task. Each task has typed inputs and outputs. - You compose tasks into workflows — Python functions decorated with
@workflow. The workflow defines the DAG structure and the data flow between tasks. - You create launch plans to trigger workflow executions. Every registered workflow automatically gets a default launch plan. You can create additional launch plans with different default inputs, fixed inputs, or schedules.
- You register all of this under a project and domain. The project is a logical namespace (e.g.,
my-ml-project). The domain controls the execution environment (e.g.,developmentvs.production).
A quick example
Here is a complete example showing all four concepts working together:Versioning
Each task and workflow in Flyte is versioned and immutable. Once registered, a specific version of a task or workflow (identified by its project, domain, name, and version) cannot be changed. This is a deliberate design decision to guarantee reproducibility: you can always re-run an old workflow version with identical behavior. By default,pyflyte register uses the current Git SHA as the version string.
Explore each concept
Tasks in depth
Task types, resource allocation, caching, retries, timeouts, and plugins.
Workflows in depth
DAG construction, promises, subworkflows, and the
>> dependency operator.Launch Plans in depth
Default inputs, fixed inputs, cron schedules, fixed-rate schedules, and activation.
Projects and Domains in depth
Multi-tenancy, execution isolation, and promoting workflows across environments.