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.