Two-phase commit (PC) coordinates transactions across multiple databases.
Phase (Prepare):
- Coordinator asks all participants: "Can you commit?"
- Each participant prepares and responds yes/no
Phase (Commit):
- If all said yes, coordinator sends commit
- If any said no, coordinator sends abort
Problems:
- Blocking: Participants hold locks waiting for coordinator
- Coordinator failure: Participants stuck in prepared state
Modern systems often use saga pattern instead.