| Coordinator crashes after PREPARE |
Cohort waits forever (blocked!) |
Coordinator recovers from log |
| Coordinator crashes after COMMIT written |
Cohort waits; coordinator re-sends COMMIT on recovery |
Coordinator log drives recovery |
| Cohort crashes before voting |
Coordinator sees timeout → abort |
Cohort replays prepare log on recovery |
| Cohort crashes after voting YES |
Cohort must commit when coordinator decision arrives |
Cohort's prepared transaction persists until resolved |