1. A computer implemented method of performing a distributed transaction, comprising: intercepting, by a computing device participating in distributed transaction, an operation to change a resource from an initial state to a resultant state during the distributed transaction; determining an inverse operation that will change the resource from the resultant state to the initial state by the computing device; recording the inverse operation; and performing the operation.