A distributed transaction is a single transaction that updates two or more databases. The following scenario illustrates how inconsistencies can occur during a distributed transaction. A bank has two accounts, one on database acct1 and another on database acct2. The bank runs an application that starts a transaction to withdraw a sum of money from acct1 and deposit it into acct2. To keep the accounts in balance, it is critical that both operations—the withdrawal and the deposit—succeed, or that they both fail. For example, if acct1 commits its part of the transaction and acct2 does not, there is an inconsistency in the data, as shown in the following figure.