Skip to content

[EPIC] Stateful transactions and snapshot production (RFC-0003) #3266

Open
1 of 4 issues completed
Open

Description

@CTTY

What's the feature are you trying to implement?

This epic tracks the implementation of the stateful transaction architecture defined in RFC-0003: Stateful Transactions and Snapshot Production (introduced in #2620).

Today, transaction actions are replayed from scratch on every catalog conflict. That is fine for simple metadata updates, but snapshot-producing actions (appends, and eventually merging operations like RowDelta/RewriteFiles) benefit from retaining work across retry attempts: stable execution identity, reusable metadata processing, and ownership of generated files that may require cleanup.

The RFC establishes:

  • A stateful TransactionAction model: each action pairs immutable intent with exclusively-owned, retry-persistent state; the transaction owns catalog refresh, retry, and replay.
  • Persistent snapshot producers (SimpleSnapshotProducer, MergingSnapshotProducer) as action state, replacing the attempt-scoped producer and its hook traits.
  • Artifact ownership and terminal cleanup semantics (Committed / Failed / Unknown).
  • Reuse rules for retained work across retry/rebase.

Milestones (per RFC §8.1)

Out of scope

End-to-end operation implementations built on top of this foundation — e.g. RowDelta / RewriteFiles — are tracked separately (#1607) and become unblocked once milestones 2–4 land.

Related issues

Willingness to contribute

I can contribute to this feature independently

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicEpic issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions