Can someone please help me understand the difference between async scope and vm in mule. I understand vm is like in memory JMS, but if my requirement is to process something asynchronously, can I use either of them at will ? If not, what are the differences.
For example, what can be the difference between the following:
Main flow1 calling another flow using async scope:
<flow name="mainflow1">
...
<async>
<flow-ref name="anotherflow" />
</async>
...
</flow>
Main flow2 calling another flow using VM:
<flow name="mainflow2">
...
<outbound-endpoint address="vm://anotherflow" exchange-pattern="one-way" />
..
</flow>
Assume another flow writes a record to some database and is not of request-response type.And how about thread safety. Are both complete thread safe?