• 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