Two Phase Commit
Overview
Two-Phase Commit (2PC) is the coordination protocol Ethera uses to decide whether a cross-rollup action should be committed or aborted. It is one of the key mechanisms behind Ethera's atomicity.
In Ethera, 2PC ensures that participating rollups reach the same outcome for a coordinated action:
- If every required part can proceed, the action is committed
- If any required part cannot proceed, the action is aborted
This prevents partial completion across rollups and helps maintain consistency across the network.

How It Works
At a high level, Ethera uses Two-Phase Commit in three steps:
- Vote Collection: Each participating rollup determines whether its part of the action can proceed and sends that decision to the Shared Publisher
- Decision: If every rollup can proceed, the Shared Publisher decides to commit. If any rollup cannot proceed, it decides to abort
- Execution Outcome: All participating rollups follow the same decision, which preserves atomicity across the coordinated action
Properties
Agreement
All participating rollups reach the same final decision.
Validity
- If any rollup must abort, the coordinated action aborts
- If every rollup can proceed, the coordinated action can be committed
Termination
If the coordination process completes successfully, all participating rollups eventually receive a final decision.
Ethera Network Use Case
In Ethera, Two-Phase Commit is used to coordinate actions that span multiple rollups. For example, one part of a cross-rollup flow may create a message on a source chain while another part depends on that message on a destination chain. Rather than treating those dependent steps as unrelated local transactions, Ethera coordinates them around one final outcome: commit the action together or abort it together.