More details how works loops in parallel execution

Hi,

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:

  1. parallel loop with 100 iterations without delay;
  2. parallel loop with 101 iterations: 100 runs without delay + 1 run with 10 s delay;
  3. parallel loop with 110 iterations: 100 runs without delay + 10 runs with 10 s delay;
  4. 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)

Thanks!

@Vander_Maziero,

You are exactly correct: 5 is the maximum number of executions that run in parallel. We just created a ticket to get this added to our documentation.

Thank you for bringing this to our attention. We’ll get the documentation updated ASAP!

Thank you,
Heath

1 Like