The difference between an exchange and a transfer is the sequence of deposits and withdrawals made in an exchange depends on the balances of the accounts while those in a transfer do not. Exchange produces incorrect results without additional serialization because another process can change the balances after exchange's withdrawal and invalidate exchange's assumptions about the first accounts balance which the later deposit is based on. Transfer does not need additional serialization. More generally, transfers from accounts with sufficient balances are commutative because addition is commutative (withdraw = adding -amount to the source balance and deposit = adding amount to the destination balance). This means a set of transfers will produce the same final result no matter the order (not true if a transfer can fail due to insufficient balance). In contrast swapping is not commutative, so the final balances from a set of exchanges can vary depending on the order of process execution.