In my organisation we are just starting to test Zeebe. One of the issues we’ve come across is actually how to model concerns cutting across multiple tasks of a workflow. This could be things like status updates, workflow cancellation or similar which may occur at any step of the workflow.
So far we’ve handled this by modelling the affected steps as subprocesses and attaching boundary events (see example below).
Is this a good way of handling such concerns, or do you have suggestions for improvement?
This is simplified process where status update messages may originate at any step in the workflow (non-interrupting). Upon these messages workflow status should be updated in an external system. Additionally, an external system may request that the workflow is cancelled. The request may be sent at any stage in the workflow and is interrupting. The cancellation request may require compensating actions in external systems (hence the task).
We did consider modelling this explicitly for each affected task, but this made the models harder to read and seemed to add unnecessary complexity, but there may be advantages we haven’t noticed yet.