Skip to content

B1 follow-up: deliver the boundary DML instead of dropping it (no-drop halt) #330

Description

@devarispbrown

Decision (DeVaris, 2026-08-30): v0.20 ships the DISCLOSE option — the halt message tells the operator the first record under the new schema shape is not delivered. The no-drop design is the follow-up.

Current mechanism: the drift marker emits at the first new-shape DML's LSN (pgoutput delivers RelationMessages with WALStart 0, so the marker cannot carry the relation-message LSN — D1 deviation). That boundary DML is D4-skipped in-run and dropped at the wire on restart (subscription.go WALStart <= StartLSN guard). One record per halt episode, position claims it was covered.

No-drop design: deliver the boundary DML as a normal record immediately BEFORE the marker in the same batch, so the position's semantics hold and nothing is lost. Changes batch/ack semantics on the drift path — needs its own review cycle, not a squeeze into B1.

Ref: PR #329, design doc 20260829-dbz3-b1-schema-drift-escape-hatch.md (D1/D4/D5/FM3).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions