WS-D8 gRPC server concurrency/stream/timeout limits #304

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

No limits today -> resource-exhaustion. Size S.

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

No limits today -> resource-exhaustion. Size S. 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:27:05 +00:00 (Migrated from github.com)

Delivered via PR #355 (WS-D8, squash-merged to dev). Bounded the tonic gRPC server: concurrency_limit_per_connection=32, max_concurrent_streams=64, global request timeout=300s, max_decoding_message_size=16 MiB/service, TCP+HTTP2 keepalives. Verified Server::timeout wraps the handler future so server-streaming Subscribe is unaffected; unary Sync gets the generous 300s global (tonic 0.14 has no per-RPC builder override). 2 new decode-limit tests; 536 pass. Note: values are reasoned defaults, not load-tested.

Delivered via PR #355 (WS-D8, squash-merged to dev). Bounded the tonic gRPC server: concurrency_limit_per_connection=32, max_concurrent_streams=64, global request timeout=300s, max_decoding_message_size=16 MiB/service, TCP+HTTP2 keepalives. Verified Server::timeout wraps the handler future so server-streaming Subscribe is unaffected; unary Sync gets the generous 300s global (tonic 0.14 has no per-RPC builder override). 2 new decode-limit tests; 536 pass. Note: values are reasoned defaults, not load-tested.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#304