A distributed transaction as a sequence of local transactions, each with a compensating action that undoes it if a later step fails.