While is a processor that has a condition and a list of child processors. The child processors are executed continuously on a message batch for as long as the child condition resolves to true.

at_least_once: false
arg: ""
operator: equals_cs
part: 0
type: text
processors: []

The field at_least_once, if true, ensures that the child processors are always executed at least one time (like a do .. while loop.)

The field max_loops, if greater than zero, caps the number of loops for a message batch to this value.

If following a loop execution the number of messages in a batch is reduced to zero the loop is exited regardless of the condition result. If following a loop execution there are more than 1 message batches the condition is checked against the first batch only.

You can find a full list of conditions here.



bool Whether to always run the child processors at least one time.


number An optional maximum number of loops to execute. Helps protect against accidentally creating infinite loops.


object A condition to test for each loop. If the condition fails the loop is stopped.


array A list of child processors to execute on each loop.