fix: preserve transaction commit LSN on live events - #54
Merged
Conversation
psteinroe
force-pushed
the
fix/commit-lsn
branch
from
July 21, 2026 16:09
4b47273 to
9dd7f9d
Compare
psteinroe
force-pushed
the
fix/commit-lsn
branch
from
July 21, 2026 16:25
9dd7f9d to
60f7183
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Preserve the logical replication transaction commit LSN when live inserts are converted into triggered events. This gives downstream sinks a commit-safe consistency watermark instead of losing it at the core conversion boundary.
Recovery LSN Semantics
Adds a separate optional
commit_lsnfield while keeping the existing trigger-timelsnunchanged for slot recovery.convert_event_from_tablenow constructs both values explicitly: live inserts provide their transaction commit LSN, while replayed table rows and persisted checkpoints leave it absent.Regression coverage verifies distinct row (
0/100) and commit (0/200) LSNs through the live conversion path and verifies COPY-replayed rows retain only the row LSN. A full pipeline test executes a sourceINSERTandUPDATEin one transaction and proves both emitted events share one commit LSN while each trigger-time row LSN differs from it. Existing slot recovery tests remain green.