well I suggest to take a look about scatter gather component, it would be nice for what you need.
you could read about this in the folowing link: https://docs.mulesoft.com/mule-user-guide/v/3.6/scatter-gather
The main idea is to do something like this:
<scatter-gather doc:name="Scatter-Gather">
<processor-chain>
<flow-ref name="getUnitedFlightsFlow" doc:name="getUnitedFlightsFlow"/>
<filter ref="FilterNotArrayList" doc:name="Filter not an ArrayList"/>
</processor-chain>
<processor-chain>
<flow-ref name="getDeltaFlightsFlow" doc:name="getDeltaFlightsFlow"/>
<filter ref="FilterNotArrayList" doc:name="Filter not an ArrayList"/>
</processor-chain>
<processor-chain>
<flow-ref name="getAmericanFlightsFlow" doc:name="getAmericanFlightsFlow"/>
<filter ref="FilterNotArrayList" doc:name="Filter not an ArrayList"/>
</processor-chain>
</scatter-gather>
in this example I use the component to take a choice and call a subflow to execute one particular dutty for one of each.
I hope this help you.