Two-phase commit

A coordinator asks every participant to prepare, then tells all to commit. It is atomic across systems but blocks if the coordinator fails, so it is avoided across services.