WS-AtomicTransaction (WS-AT) is a protocol for managing atomic transactions between distributed applications, transaction managers and resource managers. An atomic transaction is a single, irreducible component of a classic transaction, such as making a purchase. WS-AT ensures that if a single atomic transaction fails, the whole transaction fails: A partial transaction cannot take place. For example, if a customer is transfering funds from one account to another, WS-AT makes it impossible for funds to be removed from one account successfully but not deposited into the target account.
There are multiple atomic transactions within most classical transactions. For example, when a consumer makes a retail purchase using a credit card, several steps are involved: ringing up the sale, swiping the card through a reader, verifying the validity of the account associated with the card, ensuring that the account has sufficient available credit and producing a receipt. Each of these components is an atomic transaction. In combination, they constitute a classical transaction.
WS-AT defines how transactions are carried out based on WS-Coordination and WS-Transaction, companion specifications for information exchange in business processes. There are three agreement protocols involved: completion, volatile two-phase commit (2PC), and durable 2PC. The completion protocol initiates the process that can ultimately lead to 2PC. Volatile 2PC applies to resources subject to frequent change, such as data stored in RAM (random-access memory). Durable 2PC applies to more permanent resources such as databases that may be stored on a hard disk or other non-volatile media. The ultimate result of an atomic transaction is either a "commit" (successful completion) or an "abort" (failure to complete).
The WS-AtomicTransaction specification is an activity of the Web Service Interoperability Organization (WS-I Organization), an industry-wide effort devoted to standardizing the ways in which Web services are requested and delivered.