Skip to content

Request: incremental sink reads (forward + blob watermark) [escalated from #122] - #152

Merged
philcunliffe merged 1 commit into
masterfrom
request/incremental-sink-reads
Jun 25, 2026
Merged

Request: incremental sink reads (forward + blob watermark) [escalated from #122]#152
philcunliffe merged 1 commit into
masterfrom
request/incremental-sink-reads

Conversation

@philcunliffe

Copy link
Copy Markdown
Contributor

What

Files a request LLP (llp/0039-incremental-sink-reads.spec.md, Type: Spec, Status: Active) for incremental reads in the central forward sink and the core blob sink — read only rows added since the last successful export, instead of re-reading and re-streaming the whole partition every tick.

Why this is a request, not a fix

The neutral reconciler picked up issue #122 as a neutral:fix bug. The bug-fix worker investigated and determined a test-provable localized fix is not credible: the proposed watermark is a cross-cutting design change that

  • extends the kernel-owned storage.readRows API (consumed by sinks, backfill, query, vector-search, the projector) with a since/continuation, and
  • adds a persisted per-(sink instance, partition) watermark contract,

and whose exactly-once guarantee depends on choosing a watermark that survives retention prunes (rows deleted from the front of a partition) and compaction generation swaps — a real design decision with several viable shapes (snapshot ancestry, monotonic row-sequence, content-addressed continuation). It also revises documented design in LLP 0013/0014.

So per LLP 0009, the work is escalated out of the maintenance family and re-enters the pipeline family as a live request. Once this is merged, the pipeline's Designer will mint a design covering it.

Human decision point

Merging this PR greenlights the requirement (not the implementation — that comes as a later, separately-reviewed design + change-set PR). If you don't want this architecture, close the PR; issue #122 has had neutral:fix removed and points here.

Closes-as-request: #122

🤖 Generated with Claude Code

Escalated from issue #122 by the neutral reconciler. A bug-fix attempt found
the proposed cursor/watermark to be a cross-cutting design change (extends the
kernel storage read API + a persisted per-sink watermark, spanning the central
forward sink and the core blob sink) whose exactly-once guarantee depends on a
watermark that survives retention prunes and compaction generation swaps. Files
it as a live request LLP so it re-enters the pipeline family for design.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@philcunliffe
philcunliffe merged commit c0e4315 into masterJun 25, 2026
6 checks passed
@philcunliffe
philcunliffe deleted the request/incremental-sink-reads branch June 25, 2026 21:05
Sign up for freeto 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

@philcunliffe