From e2c7f53a4cb46962d87b36234f9451946b2e86dc Mon Sep 17 00:00:00 2001 From: Joshua Temple Date: Sun, 23 Aug 2026 03:25:52 -0400 Subject: [PATCH] docs(source/kafka): state the post-drain settle disposition for Kafka records Closes the gate's last open item: the core contract defers per-backend post-drain semantics to each adapter; the kafka README now states them (applies as if delivered; duplicate marks broker-idempotent; non-Kafka messages rejected where detectable). --- source/kafka/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/kafka/README.md b/source/kafka/README.md index d23a2d7..08f401b 100644 --- a/source/kafka/README.md +++ b/source/kafka/README.md @@ -88,6 +88,11 @@ do expose it: - `Transactional` — Kafka exactly-once consume-process-produce, available when the inlet is built with `WithTransactional()`. +**Post-drain settles:** settling a genuine Kafka record after this +subscription drained applies it as if delivered — a duplicate mark is +harmless (broker-idempotent) and accounting cannot go negative — while a +non-Kafka message is rejected where detectable. + `BlockRebalanceOnPoll` gives the engine a safe processing window: a rebalance cannot move partitions mid-batch; the subscription releases the rebalance only between fetches. A `NakAfter(d)` pause holds that window for at most `d` per