views:

21

answers:

1

Hi

We have a parent orchestration where we call a child orchestration. However, once the child orchestration has completed, we would like to return a message to the parent orchestration.

What is the best / most standard way to do this?

  • A) Just publish the message from the child orchestration to the messagebox and correlate this in the parent with a receive
  • B) Can we use a message as a C# style ref / out parameter when passing it from the Parent to Child orchestration?
  • Other?

Thanks

Stuart

+2  A: 

You can go either way...

B is the Easiest solution. You use a return parameter with the "Call Shape." Two major cons of this way is that you will be processing Synchronously. So if these two orchestrations aren't related, or are in separate business processes's you will have a lot of orchestrations waiting. Second is that you are coupling the parent and child. So you are creating a dependency between parent and child. Anytime you need to stop the parent, you will have to stop the child.

If your situation doesn't meet the above you might want to be decoupled and perform Asynchronously go for the Start shape or messagebox directbound ports. MessageBox direct bound ports is the only true decoupled scenario and is the most scalable.

Nix
Thanks Nix - will go this way. The child orch is mostly 'refactoring', so coupling isn't an issue, but will use your advice as the litmus test for choosing between the 2.
nonnb