Skip to content

Retry Grpc Connection#248

Merged
raphael-goetz merged 9 commits intomainfrom
222-retry-grpc-connection
Feb 2, 2026
Merged

Retry Grpc Connection#248
raphael-goetz merged 9 commits intomainfrom
222-retry-grpc-connection

Conversation

@raphael-goetz
Copy link
Member

Resolves: #222

@github-actions
Copy link

github-actions bot commented Feb 2, 2026

GitLab Pipeline Action

General information

Link to pipeline: https://gitlab.com/code0-tech/development/aquila/-/pipelines/2300693667

Status: Passed
Duration: 1 minutes

Copy link
Contributor

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

This PR implements retry logic for gRPC connections to the Sagittarius service, addressing issue #222 where Aquila would panic immediately if Sagittarius was unavailable. The changes introduce a retry mechanism with exponential backoff, readiness tracking, and request interception to gracefully handle service unavailability.

Changes:

  • Added retry logic with exponential backoff (up to 10 retries) for establishing gRPC connections to Sagittarius
  • Introduced application readiness tracking to reject requests when Sagittarius is unavailable
  • Refactored client implementations to use shared Channel instances instead of individual connections
  • Enhanced logging to be less verbose (changed info to debug) and more informative about connection states

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
src/sagittarius/retry.rs New module implementing channel creation with retry logic and exponential backoff
src/configuration/state.rs New module for tracking Sagittarius readiness state using atomic booleans
src/configuration/mod.rs Exports the new state module
src/sagittarius/mod.rs Exports the new retry module
src/main.rs Integrates retry logic and readiness tracking, implements reconnection loop for flow stream
src/server/mod.rs Refactored to use shared channel and adds interceptor to reject requests when service is not ready
src/sagittarius/data_type_service_client_impl.rs Updated to use Channel parameter instead of URL, improved logging
src/sagittarius/flow_type_service_client_impl.rs Updated to use Channel parameter instead of URL, improved logging
src/sagittarius/runtime_function_service_client_impl.rs Updated to use Channel parameter instead of URL, improved logging
src/sagittarius/flow_service_client_impl.rs Updated to track readiness state and return Result for better error handling
src/server/data_type_service_server_impl.rs Changed log level from info to debug, improved log formatting
src/server/flow_type_service_server_impl.rs Changed log level from info to debug, improved log formatting
src/server/runtime_function_service_server_impl.rs Changed log level from info to debug, improved log formatting

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

raphael-goetz and others added 2 commits February 2, 2026 14:06
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Raphael Götz <52959657+raphael-goetz@users.noreply.github.com>
@raphael-goetz raphael-goetz force-pushed the 222-retry-grpc-connection branch from 79f1833 to cfdacef Compare February 2, 2026 13:11
@raphael-goetz raphael-goetz merged commit 48cf0af into main Feb 2, 2026
2 checks passed
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.

Retry Sagittarius gRPC Connection

1 participant