Get to know the main orchestration components of a Kestra workflow.
Tasks are discrete actions within a flow, capable of taking inputs and variables from the flow, and producing outputs for downstream consumption by end users and other tasks.
Flow is a container for tasks and and their orchestration logic, as well as labels, variables, inputs, outputs and triggers.
Namespace is a logical grouping of flows. Namespaces are used to organize workflows and manage access to secrets, task defaults and variables.
Execution is a single run of a flow in a specific state.
Conditions are specific criteria or events that determine when a specific triggers should create a new execution. Usually, they limit the scope of a trigger to a specific set of cases.
Flow trigger allows you to trigger a flow after another flow execution, enabling event-driven patterns.
Triggers & schedule
Trigger is a mechanism that automates the execution of a flow. Triggers can be scheduled, event-based or webhook-based.
The Schedule trigger generates new executions on a regular cadence based on a Cron expression or custom scheduling conditions.
Webhook trigger generates a unique URL that you can use to automatically create new executions based on events in another application such as GitHub or Amazon EventBridge.
Variables are key-value pairs that help reuse some values across tasks.
Inputs is a list of dynamic values passed to the flow at runtime.
Outputs allow you to pass data between tasks and flows.
Labels are key-value pairs that you can use to organize (and search for) your flows and executions based on your project, maintainers, or any other criteria.
Task defaults is a list of default values applied to each task of a certain type within your flow(s). Task defaults are like default function's arguments — they help avoid repetition when a given task or plugin is often called with the same values.
Subflows allow you to build modular and reusable workflow components. They work similarly to calling functions. A subflow execution is created when you call a flow from other flow.
The errors is a list of tasks set on a flow-level that will be executed when an error occurs. You can add multiple such tasks, and they will be executed sequentially.
Retries handle transient failures in your workflows. They are defined at the task level and can be configured to retry a task a certain number of times, or with a certain delay between each retry.
The flow-level concurrency property allows you to control the number of concurrent executions of a given flow by setting the limit key.
You can document your flows, inputs, outputs, tasks and triggers by adding a description property.
The disabled flag is a boolean property that allows you to skip a flow, task or trigger.
This section summarizes all required and optional properties of a flow.