title: grails how to disable transactional for a method
body: <p>I have a service method to transfer funds to/from an external system.</p>
  
  <p>it should create a transaction in our system first (so we have a transactionId)
  Then we call the external system.
  If the external system fails, we need to rollback the transaction, then write a new record in our payment audit log table, regardless of if the call failed or worked.</p>
  
  <p>I cant figure out how to control the transaction in this case.</p>
  
  <p>I understand services are transactional by default.</p>
  
  <p>I assume I could create 3 methods (they are all 1 method now, which doesn't work as I have no control over what gets committed and what gets rolled back)</p>
  
  <ol>
  <li>createPaymentTransaction()</li>
  <li>sendToPaymentSystem()</li>
  <li>createPaymentRecord()</li>
  </ol>
  
  <p>I need to rollback 1 if 1 fails, and do nothing more.
  I need to rollback 1 if 2 fails, but write 3.
  I need to write 3 if 1 and 2 works.</p>
  
  <p>I don't know how to annotate these, or how to structure a 4th request to manage the 3.</p>