Two-Phase Commit
A prepared transaction keeps its locks until it is told the answer. A recovered coordinator replays its decision; until then the rows stay held.
A prepared transaction keeps its locks until it is told the answer. A recovered coordinator replays its decision; until then the rows stay held.
An engine’s exactly-once guarantee stops at its own state. A sink that commits with the checkpoint is how that guarantee reaches anything outside it.