
Core Plugins and tasks Parallel
CertifiedRun child tasks in parallel.
Core Plugins and tasks Parallel
Run child tasks in parallel.
Starts all child tasks concurrently, bounded by concurrent if set (0 = no cap). Each branch can contain its own sequences or nested flows.
Use when independent steps can run at the same time to shorten wall-clock duration.
type: io.kestra.plugin.core.flow.ParallelExamples
Run tasks in parallel
id: parallel
namespace: company.team
tasks:
- id: parallel
type: io.kestra.plugin.core.flow.Parallel
tasks:
- id: 1st
type: io.kestra.plugin.core.debug.Return
format: "{{ task.id }} > {{ taskrun.startDate }}"
- id: 2nd
type: io.kestra.plugin.core.debug.Return
format: "{{ task.id }} > {{ taskrun.id }}"
- id: last
type: io.kestra.plugin.core.debug.Return
format: "{{ task.id }} > {{ taskrun.startDate }}"
Run two sequences in parallel
id: parallel_sequences
namespace: company.team
tasks:
- id: parallel
type: io.kestra.plugin.core.flow.Parallel
tasks:
- id: sequence1
type: io.kestra.plugin.core.flow.Sequential
tasks:
- id: task1
type: io.kestra.plugin.core.debug.Return
format: "{{ task.id }}"
- id: task2
type: io.kestra.plugin.core.debug.Return
format: "{{ task.id }}"
- id: sequence2
type: io.kestra.plugin.core.flow.Sequential
tasks:
- id: task3
type: io.kestra.plugin.core.debug.Return
format: "{{ task.id }}"
- id: task4
type: io.kestra.plugin.core.debug.Return
format: "{{ task.id }}"
Stop the other branches as soon as one task fails
id: parallel_fail_fast
namespace: company.team
tasks:
- id: parallel
type: io.kestra.plugin.core.flow.Parallel
onChildFailure: CANCELLED
tasks:
- id: fails_fast
type: io.kestra.plugin.core.execution.Fail
- id: long_running
type: io.kestra.plugin.core.flow.Sleep
duration: PT1M
Properties
tasks *array
1assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150concurrent integerstring
0Number of concurrent parallel tasks that can be running at any point in time
If the value is 0, no limit exist and all tasks will start at the same time.
errors array
List of tasks to run if any tasks failed on this FlowableTask.
finally array
onChildFailure string
FAILCONTINUECANCELFAILWhat to do with the other still-running tasks when one task fails.
CONTINUE (default): other tasks keep running to completion, as today.
CANCELLED / FAILED: as soon as a task fails with no retry left, every other still-running task in this Parallel is interrupted and lands in the given state. The Parallel itself still resolves to FAILED and its errors/finally tasks still run normally.