Skip to content

feat: add application-level keepalive to prevent ALB idle connection timeouts#1695

Open
JoshVanL wants to merge 2 commits intodapr:masterfrom
JoshVanL:grpc-keepalive-hello
Open

feat: add application-level keepalive to prevent ALB idle connection timeouts#1695
JoshVanL wants to merge 2 commits intodapr:masterfrom
JoshVanL:grpc-keepalive-hello

Conversation

@JoshVanL
Copy link
Contributor

AWS ALBs do not forward HTTP/2 PING frames, causing idle gRPC connections to be closed. This adds a background loop that periodically calls the existing Hello RPC as application-level traffic to keep the connection alive through L7 load balancers.

@JoshVanL JoshVanL requested review from a team as code owners March 11, 2026 18:01
Copilot AI review requested due to automatic review settings March 11, 2026 18:01
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an application-level gRPC keepalive loop in the Durable Task worker to reduce the chance of idle HTTP/2 connections being closed (e.g., by AWS ALBs) while the worker is waiting on the long-lived getWorkItems stream.

Changes:

  • Introduces a scheduled keepalive task that periodically calls a unary RPC (hello) on the sidecar.
  • Starts the keepalive loop after opening the work-item stream and stops it on disconnect/retry and on close().
  • Adds supporting constants/imports and scheduler lifecycle management.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

…timeouts

AWS ALBs do not forward HTTP/2 PING frames, causing idle gRPC connections
to be closed. This adds a background loop that periodically calls the
existing Hello RPC as application-level traffic to keep the connection
alive through L7 load balancers.

Signed-off-by: joshvanl <me@joshvanl.dev>
@JoshVanL JoshVanL force-pushed the grpc-keepalive-hello branch from 2bbf43a to bfdb4a4 Compare March 11, 2026 18:16
Signed-off-by: joshvanl <me@joshvanl.dev>
@codecov
Copy link

codecov bot commented Mar 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.51%. Comparing base (f63a4a4) to head (44b4e4c).

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #1695      +/-   ##
============================================
- Coverage     79.53%   79.51%   -0.02%     
- Complexity     2193     2194       +1     
============================================
  Files           237      237              
  Lines          6577     6577              
  Branches        730      730              
============================================
- Hits           5231     5230       -1     
- Misses          990      992       +2     
+ Partials        356      355       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants