There is a bug in this quickstart. The email is sent in the 'placeOrder' method. If a crash occurs after the email is sent, but before XTS writes the recovery record, then a compensate will not be triggered. You should wait until an @ConfirmCompleted method is invoked (with parameter of 'true') is invoked. This is confirmation that the XTS recovery record was written and a final outcome is guaranteed.