Using gRPC Bidirectional Streaming Without Dropping Idle Connections
Bidirectional gRPC streaming keeps one HTTP/2 connection open for two-way messages, but idle timeouts can close it silently.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Bidirectional gRPC streaming keeps one HTTP/2 connection open for two-way messages, but idle timeouts can close it silently.
http.Agent maintains a per-origin pool of keep-alive sockets. maxSockets caps concurrent sockets per origin and maxFreeSockets caps idle sockets retained, which together bound connection reuse under load. The global agent is shared across modules by default, so concurrent requests from different callers compete for the same limits. Keep-alive sockets remain
I'm evaluating Apache HTTP Server as the front end for a low-traffic internal workload where requests arrive sporadically — often minutes apart. The goal is to reduce per-request overhead and server resource retention without breaking connection reuse for the few bursts that do occur. My understanding is that keep-alive connections default to a 60-second Kee
When operating gRPC inside a service mesh, administrators often configure both per‑channel keep‑alive settings and connection‑level idle timeouts enforced by sidecar proxies or load balancers. The goal is to maintain healthy long‑lived streams while preventing stale connections from consuming resources. However, the interaction between the keep‑alive ping in
An application behind Cloudflare's proxy shows intermittent failures that resemble connection pool exhaustion at the origin, but the origin's pool metrics do not clearly confirm saturation during the affected windows. The goal is to isolate one unresolved behavior: whether the intermittence is caused by Cloudflare's edge keep-alive reuse racing the origin's
Vue 3's keep-alive component and the beforeRouteLeave navigation guard each manage lifecycle events that influence pending async operations. When a route transition occurs, beforeRouteLeave can cancel in-flight requests, but keep-alive's cached state may rehydrate the component after navigation, potentially re-triggering the same async call. The reactivity s
Fastify server options such as keepAliveTimeout and maxRequestsPerSocket inherit their default values and behavioral semantics from the underlying Node.js HTTP server, yet the framework does not expose per-socket timers or remaining request counts through its public API. This creates an observability gap when diagnosing intermittent connection-related issues
Moving an HTTP client that relies on Node.js http.Agent keep-alive pooling across a Node.js major version boundary raises a configuration decision about socket limits. The affected feature is keep-alive socket reuse governed by maxSockets per origin and, in newer releases, maxTotalSockets for the default agent. agent.destroy() does not guarantee immediate cl