Skip to content

FLOWIP-071f: Sink receipts and receipt-gated progress#24

Merged
rocketpages merged 2 commits intomainfrom
flowip-071f-delivery-receipts
Mar 26, 2026
Merged

FLOWIP-071f: Sink receipts and receipt-gated progress#24
rocketpages merged 2 commits intomainfrom
flowip-071f-delivery-receipts

Conversation

@rocketpages
Copy link
Copy Markdown
Contributor

Checklist

  • I read CONTRIBUTING.md
  • All commits are signed off (DCO): git commit -s
  • I ran: cargo fmt --all
  • I ran: cargo test --workspace

Summary

  • Sinks no longer report success for buffered work. A new Buffered delivery result holds contract state open until flush confirms the batch.
  • Progress tracks two watermarks separately: how far the sink has read vs. how far durable receipt evidence extends. Completion and contracts use the receipt watermark only.
  • Contract verification runs after flush, not before. The previous ordering let the final check pass before the last batch was committed.
  • DeliveryContract clears all parent IDs on a receipt, not just the first, so future multi-parent receipts work without further changes.
  • CsvSink uses the new buffering protocol: per-event Buffered receipts on consume, per-event Success receipts on flush.

Signed-off-by: Kevin Webber <kevin@obzenflow.dev>
Signed-off-by: Kevin Webber <kevin@obzenflow.dev>
@rocketpages rocketpages merged commit ffe3e76 into main Mar 26, 2026
7 checks passed
@rocketpages rocketpages deleted the flowip-071f-delivery-receipts branch March 26, 2026 14:49
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