title: nservicebus calling a Saga from within another Saga
body: <p>I'm new to NServiceBus and trying to find the best way to model a scenario which uses compensating transactions.</p>
  
  <p>For example, say I have a typical BookHotel scenario: </p>
  
  <p>In the happy case, the messaging flow would proceed as follows: </p>
  
  <ol>
  <li>BookHotelCommand --> BookHotelSaga</li>
  <li>BookFlightCommand --> Reply IFlightBookedMessage</li>
  <li>BookRentalCommand --> Reply IRentalBookedMessage</li>
  <li>ReplyToOriginator --> HotelBookedMessage</li>
  </ol>
  
  <p>How would I model compensating transactions in the above flow?  I was initially thinking of calling a "UnbookHotelSaga" in one of the replies above, based on some business conditions.  However, I seem to be running into some challenges with getting this working.  Can someone with Saga experience comment if this is the right approach.  </p>
  
  <p>Here is the scenario I was thinking would work by calling another Saga: </p>
  
  <ol>
  <li>BookHotelCommand --> BookHotelSaga</li>
  <li>BookFlightCommand --> Reply IFlightBookedMessage</li>
  <li>BookRentalCommand --> (condition satisfied) --> UnbookHotelCommand --> UnbookHotelSaga</li>
  <li>UnbookRentalCommand --> Reply IUnbookRentalMessage</li>
  <li>UnbookFlightCommand --> Reply IUnbookFlightMessage</li>
  <li>UnbookHotelCommand --> ReplyToOriginator --> UnbookedHotelMessage</li>
  </ol>
  
  <p>Can someone please advise on the best-practices approach to implementing compensating transactions?</p>