This topic helps me to recognize that I’m almost on the right path of how to use pools thanks to @Ingo_Richtsmeier
However, there are still some concerns, I have a complex process (due to its participant’s interactions, not to its business logic) with many participants (all of them belong to the same organization) and each one does a small task such as review, approve, etc. then forward it to another participant to do its task and so on.
Pools confuse me a lot, starting from how to know when I need a new pool? because a new pool means a new process (not a subprocess) but sometimes I see one process broken down into many pools each represents one participant in one process, then I rethink again and say, okay a pool is not a new different process, it’s still related to the origin process but technically it’s a new process! Is that right?
Then another dilemma is, how to distribute the participants to their corresponding pools? is there a rule or something? or it’s just as flexible as I want so I can have many pools for the same participant?
Should I stick with the (participant/pool) solution even the pool becomes too complex?
I prefer to break down each participant’s group of activities, that are executed at the same time before collaborating with another participant (waiting for work to be done by others then continue). Therefore each pool contains a group of activities.
So the result is, many pools, each one represents a participant’s sub-work (not all work in this pool is done by that participant).
Is it okay to have such pools that are executed in the same engine for the same big process?
Please note that I’m trying to break down my process to multiple pools as much as I can in order to decrease the complexity of the process and to make it more readable due to its huge workflow and its interactions with many participants.
Am I on the right path or misunderstood pool concepts?