"short circuit" on parallel approvals

I have a situation where a request is approved if all the appropriate approvers approve it (so an AND logic)

I would like to ask their approval in parallel, but if one rejects there’s no need to wait for others to respond, since we know the end result with be a rejection.

How do you model this in BPMN / Camunda?

Any best practices?

There are a few different ways of modeling this, the first that came to mind was a Parallel Multi-instance user task that can handel approval for X approvers and then a conditional boundary event that could be triggered if any of the tasks completes with a “not approved”

2 Likes

Thanks for the quick reply. What about approvals that are on separate branches of a parallel gateway? Would that conditional boundary event work even on that case?

Hi @User9,

@Niall’s solution should work even on the case of having approvals modeled as separate branches of a parallel gateway.
All what you need to do is to embed the approvals logic within a sub-process then attach the conditional boundary event to that sub-process.

Hello @Niall and @hassang ,

just to thank you and to confirm that I’ve set it up like this and it works fine

so both tasks can be approved normally or they go via the “rejected” path when the approved variable is created / updated with value false

1 Like