Skip to main content

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.

2PC flow

How It Works

At a high level, Ethera uses Two-Phase Commit in three steps:

  1. Vote Collection: Each participating rollup determines whether its part of the action can proceed and sends that decision to the Shared Publisher
  2. Decision: If every rollup can proceed, the Shared Publisher decides to commit. If any rollup cannot proceed, it decides to abort
  3. 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.