WS-C4 Bounded-concurrency sync dispatcher + per-account timeout (fixes serialized head-of-line) #292

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

One dispatcher shared by client Mail.Sync and the scheduler; per-account in-flight coalescing + timeout in exactly one place. Size M/L. Dep: WS-C1.

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

One dispatcher shared by client Mail.Sync and the scheduler; per-account in-flight coalescing + timeout in exactly one place. Size M/L. Dep: WS-C1. Roadmap-to-9/10 (design: scratchpad/design/). Serial PROTO queue via WS-A. Brief at dispatch. DoD per docs/STORY-WORKFLOW.md.
KofTwentyTwo commented 2026-07-31 22:58:32 +00:00 (Migrated from github.com)

Delivered via PR #366 (WS-C4, squash-merged to dev). Shared SyncDispatcher funnels every account sync: Semaphore cap (NUNCIO_SYNC_CONCURRENCY=4), join-coalescing of duplicate in-flight syncs, per-account timeout (NUNCIO_SYNC_TIMEOUT=300s), integrated with WS-C1 shutdown via biased select!. Head-of-line regression test proves a hung account no longer blocks others; 542 tests. WS-C5 scheduler is the intended third caller (out of scope).

Delivered via PR #366 (WS-C4, squash-merged to dev). Shared SyncDispatcher funnels every account sync: Semaphore cap (NUNCIO_SYNC_CONCURRENCY=4), join-coalescing of duplicate in-flight syncs, per-account timeout (NUNCIO_SYNC_TIMEOUT=300s), integrated with WS-C1 shutdown via biased select!. Head-of-line regression test proves a hung account no longer blocks others; 542 tests. WS-C5 scheduler is the intended third caller (out of scope).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#292