Two-Phase Commit
also called 2PC, XA
A blocking protocol for atomic commit across several resources: a coordinator asks all participants to prepare, then tells them all to commit or abort.
It does what it says — either every participant commits or none does — and it is the reason it keeps being reached for when a saga's compensations look unpleasant.
The problem is what happens when the coordinator fails after the prepare phase. Participants have locked their resources and promised to commit, and they cannot unilaterally decide either way, so they block, holding those locks, until the coordinator returns. In a service architecture that means one crashed coordinator can freeze several databases.
It remains reasonable inside a single trust and failure domain — one database, several tables; a message broker and a database on the same host with a well-tested XA implementation. Across service and network boundaries, a saga is nearly always the better trade.