Conversation
GitLab Pipeline ActionGeneral informationLink to pipeline: https://gitlab.com/code0-tech/development/aquila/-/pipelines/2300693667 Status: Passed |
Contributor
There was a problem hiding this comment.
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.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Raphael Götz <52959657+raphael-goetz@users.noreply.github.com>
79f1833 to
cfdacef
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves: #222