When To Use sub-flow, vs VM vs Flow

Need to remember the various use cases for the strategies with connecting components of a flow.

Also need to remember what state/variables get passed from component to component.

It looks like when doing enrichment, I call out with a sub-flow reference.  Not sure why using a VM didn’t work for this case.

Turns out, using vms is a pre-Mule 3 strategy and not recommended in favour of sub-flows. VMs act as a transport barrier and require Mule to copy message and properties into a whole new message.  To do this, Mule must deserialize and re-serialize the message.