Charles Young has a great post on transactions within orchestrations.  In it he mentions the Batch property of the ATOMIC scope.  I concur with him that the documentation on this is very light, as well as any information out in the communities.  Doing a little testing on my current project with Stephen Thomas (be sure to check out his blog), it has become apparent that the property acts just as Charles suspects.


Our particular scenario –


We had an orchestration processing a large sum of messages.  At one point in the orchestration, we were calling a component to insert the records into the database.  While that orchestration was processing the large batch of messages, we sent several very small batches of messages that quickly reached the same point in their instance of the orchestration (inserting the records through the component).  It turned out that the smaller messages would not complete processing thier messages until the large batch completed.


After we changed the property to be False (the proprety for some reason defaults to True, which seems a bit dangerous), redeployed and rean the test again, the much smaller messages completed ahead of the slower, larger batch of messages (our expected outcome originally).


So, keep in mind when using the Atomic transaction that this property defaults to True, and may have ill effects on your message processing.


Cheers!!