WS-F5 Hygiene: kill is_new_message N+1 SELECT-per-message in sync #325

Closed
opened 2026-07-31 18:15:38 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-07-31 18:15:38 +00:00 (Migrated from github.com)

Size S.

Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md; DAV tests wiremock-only.

Size S. Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md; DAV tests wiremock-only.
KofTwentyTwo commented 2026-07-31 19:11:07 +00:00 (Migrated from github.com)

Delivered via PR #341 (WS-F5, squash-merged to dev). Replaced the per-message is_new_message N+1 with one batched existing_message_ids(chunk) SELECT + a per-pass HashSet for intra-chunk dedup, preserving fire-once semantics exactly (existing regression + new mixed-batch test + 2 unit tests). PO-accepted behavior change: a DB error during the batch existence check now propagates (fails the sync honestly) instead of the old per-message log-and-treat-as-not-new — consistent with the fail-closed hardening direction (cf #247), no effect on the fire-once guarantee.

Delivered via PR #341 (WS-F5, squash-merged to dev). Replaced the per-message is_new_message N+1 with one batched existing_message_ids(chunk) SELECT + a per-pass HashSet for intra-chunk dedup, preserving fire-once semantics exactly (existing regression + new mixed-batch test + 2 unit tests). PO-accepted behavior change: a DB error during the batch existence check now propagates (fails the sync honestly) instead of the old per-message log-and-treat-as-not-new — consistent with the fail-closed hardening direction (cf #247), no effect on the fire-once guarantee.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#325