Chapter 4. CAP Patterns
"Your Coffee Shop Doesn't Use Two-Phase Commit" | ||
--Gregor Hohpe |
Those who have worked on database applications will be familiar with two-phase commit. Whenever there are multiple application elements or components in a distributed system, there are two phases in order to perform an atomic transaction. In the first phase, all the participating components have to say "yes" for the transaction. If all of them say "yes," then in the second phase the changes have to be committed, which completes the transaction. This is an oversimplified description of the two-phase commit.
Note
A transaction is said to be atomic if it cannot be divided further. There is another way to interpret this: If there are multiple steps in a given transaction, either all the steps complete successfully, or none of them completes.
Even if the systems are distributed, if the number of components is very small, a two-phase commit doesn&apos...