-
Notifications
You must be signed in to change notification settings - Fork 40
Closed
Description
Given the following workflow where task1, task2, and task3 running in parallel and joining on task99
version: 1.0
description: A basic parallel workflow.
input:
- x: false
- y: false
- z: false
output:
- data:
x: <% ctx().x %>
y: <% ctx().y %>
z: <% ctx().z %>
tasks:
init:
action: core.noop
next:
- do: task1, task2, task3
task1:
action: core.noop
next:
- publish: x=true
do: task99
task2:
action: core.noop
next:
- publish: y=true
do: task99
task3:
action: core.noop
next:
- publish: z=true
do: task99
task99:
join: all
action: core.noop
The expected output should be the following.
data:
x: true
y: true
z: true
However, the actual output is this.
data:
x: false
y: false
z: true
When executing task99, orquesta takes the final context from task1, task2, and task3 and merge them together to form the initial context for task99. The final context for task1 has x=true but y and z as false. The final context for task2 has y=true but x and z as false. And so forth for task3. When the context is merged sequentially, the final context for task3 overwrites those from task1 and task2 resulting in x and y being false.
Metadata
Metadata
Assignees
Labels
No labels