Skip to content

events: publish the refs a folded checkpoint skipped - #109

Open
redhox wants to merge 2 commits into
tobi:mainfrom
redhox:fix/events-bridge-gap
Open

redhox wants to merge 2 commits into
tobi:mainfrom
redhox:fix/events-bridge-gap

Conversation

@redhox

@redhox redhox commented Oct 24, 2026

Copy link
Copy Markdown

The events bridge tails the WAL from a durable cursor. When a checkpoint folds log entries before the bridge reads them (maintenance or an opportunistic push-triggered checkpoint), catch_up detects a gap and skipped the whole range: the entries are no longer readable, so a webhook consumer never sees the push (no CI, no search indexing, no outgoing webhooks).

This stores the refs visible at the published seq in events/cursor.json and, on a gap, diffs them against the current refs and emits the missing create/update/delete events with the checkpoint seq. The synthetic events go through the same sink path, so (repo, seq, ref_name) dedup still holds if the delivery is retried. Cursors written by older versions have no refs; the bridge keeps the previous skip behaviour for that first gap and populates the snapshot on its next successful pass.

Coulm added 2 commits October 24, 2026 13:47
A checkpoint can fold log entries the events bridge has not read yet; the
bridge then detects a gap and skipped them, so consumers lost the push. Store
the refs visible at the published seq in the cursor and, on a gap, diff them
against the current refs and emit the missing create/update/delete events with
the checkpoint seq (so (repo, seq, ref) dedup still holds on retry). Older
cursors without refs keep the previous skip behaviour and are populated on the
next successful pass.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant