Asynchronous subprocesses and communication


we need to model a process, where user has a form with a list of objects. He can trigger a task for all of those objects at once or for one of them. Those tasks are asynchronous, meaning they can involve human interaction, so we can not wait for them to finish. And it would be good if those tasks could run in parallel. Those tasks can also modify the status of processing on the object they are related to.
Our idea is to have a main process with user task. On this task form is displayed to the user with a list of objects and user can trigger tasks for them. Once he triggers something, we will trigger a list of subprocesses, one per object, with message and they will start on message event. We will then use messages to inform main process about status changes and errors. Once we get a message in main process for the last object that is finished, we will complete user task in main process and go on.

Is this the right way to go, or should it be modelled differently?
We would like to model those tasks as subprocesses, as they can change in the future and they are different depending on object type.

Hi @przemek
Welcome to the forum!
Sounds like a there are a lot different ways of modeling this functionality, do you have a first attempt that you can upload to help get a better idea of what you’re trying to do?

Hi @Niall,

please find here conceptual design. In general we have a problem how to inform main process about changes in subprocesses. Subprocesses can be different depending on the object type, that is why I drew two of them.
We also want to start subprocesses, but not wait for them synchronously, but receives events about progress of their work. I think this can only be achieved with message start event, right?