I’m implementing a workflow that consumes a service that, depending on the number of executions, takes a longer time to respond, but I came across a scenario in which workflow timeout occurred, in the execution of the parallel loop.
So I implemented a workflow, using a delay to simulate the service, and the same behavior occurred. In this case, the workflow implemented has 4 scenarios:
- parallel loop with 100 iterations without delay;
- parallel loop with 101 iterations: 100 runs without delay + 1 run with 10 s delay;
- parallel loop with 110 iterations: 100 runs without delay + 10 runs with 10 s delay;
- Parallel loop with 150 iterations: 100 runs without delay + 10 runs with 10 s delay.
Scenario 1 successfully runs in less than 100 ms as expected, scenario 2 successfully runs in approximately 10.1 s as expected, scenario 3 successfully runs in approximately 20.1 s, 10 s longer than expected, in scenario 4, a timeout occurs in the workflow.
Checking here, it seems to me that the executions in parallel with a delay of 10 seconds, support only 5 executions in parallel, queuing/serializing the executions in a way, which causes the workflow timeout for the case I was testing.
So, if possible, would you be able to better detail the limits of parallel execution? (which works great for quick runs, but is limited for longer runs)
delay-in-parallel-loop-develop.flow (7.3 KB)