- 2pc
- third-party does coordination
- since by themselves the participants can’t decide
- prepare — like “do u promise to commit”. this needs to be persisted in case of node failure (just like raft)
- TC resends
decision until node ACKs it — again like raft
- time out failures — note how PA must keep waiting forever — no guarantee of liveness. must wait for coordinator to come back even if TC has failed
- first node that receives tx will become coordinator for that tx, i.e., whoever runs tx code is the coordinator