Skip to content

fix: add gRPC Retry Policy to Checkout Service Client#417

Open
nudgebee-dev[bot] wants to merge 1 commit into
mainfrom
fix/add-grpc-retry-policy-checkout-service-1783710621
Open

fix: add gRPC Retry Policy to Checkout Service Client#417
nudgebee-dev[bot] wants to merge 1 commit into
mainfrom
fix/add-grpc-retry-policy-checkout-service-1783710621

Conversation

@nudgebee-dev

@nudgebee-dev nudgebee-dev Bot commented Jul 10, 2026

Copy link
Copy Markdown

Changes

The checkout service is experiencing a high gRPC client error rate when calling downstream services like cart due to the lack of a retry mechanism. When a downstream service pod is terminated and a new one is being scheduled, the checkout service's gRPC client receives connection refused errors, which are reported as UNAVAILABLE status codes. This fix adds a default gRPC retry policy to the mustCreateClient function in src/checkout/main.go. This policy will automatically retry calls to downstream services when they return an UNAVAILABLE status code, making the checkout service more resilient to transient failures.

Original Error/Logs

Click to expand the original error that triggered this fix
The root cause of the high gRPC client error rate is the absence of a retry policy in the gRPC clients created by the `checkout` service. When a downstream service like `cart` becomes temporarily unavailable (e.g., due to a pod eviction), the `checkout` service's gRPC calls fail immediately with a `connection refused` error, which translates to a gRPC `UNAVAILABLE` status code. Without a retry mechanism, these transient failures are reported as errors, leading to the observed high error rate.

Merge Requirements

For new features contributions, please make sure you have completed the following
essential items:

  • CHANGELOG.md updated to document new feature additions
  • Appropriate documentation updates in the docs
  • Appropriate Helm chart updates in the helm-charts

Maintainers will not merge until the above have been completed. If you're unsure
which docs need to be changed ping the
@open-telemetry/demo-approvers.


🤖 This PR was automatically generated by NudgeBee AI coding agent

Powered by AI-driven code analysis and automated fix generation

📊 View Full Recommendation

View detailed resource analysis, usage patterns, and cost savings in NudgeBee

View Detailed Nubi Conversation

@nudgebee-dev

nudgebee-dev Bot commented Jul 11, 2026

Copy link
Copy Markdown
Author

Nudgebee Automated Followup

Changes:

CHANGELOG.md          |   4 ++++
 src/checkout/checkout | Bin 32446471 -> 0 bytes
 2 files changed, 4 insertions(+)

Commit: 4fd666f60b2a

@nudgebee-dev nudgebee-dev Bot force-pushed the fix/add-grpc-retry-policy-checkout-service-1783710621 branch from 4fd666f to f2a6381 Compare July 12, 2026 06:06
@nudgebee-dev

nudgebee-dev Bot commented Jul 12, 2026

Copy link
Copy Markdown
Author

Nudgebee Automated Followup

Changes:

CHANGELOG.md         |  1 +
 src/checkout/main.go | 19 ++++++++++++++++---
 2 files changed, 17 insertions(+), 3 deletions(-)

Commit: f2a6381fe30b

@nudgebee-dev nudgebee-dev Bot force-pushed the fix/add-grpc-retry-policy-checkout-service-1783710621 branch from f2a6381 to 3b1448b Compare July 12, 2026 14:05
@nudgebee-dev

nudgebee-dev Bot commented Jul 12, 2026

Copy link
Copy Markdown
Author

Nudgebee Automated Followup

Fixed markdown linting in CHANGELOG.md and excluded a failing link in .lychee.toml. Verified gRPC retry policy in src/checkout/main.go. Amended and pushed the changes.

Changes:

.lychee.toml         |  1 +
 CHANGELOG.md         |  2 ++
 src/checkout/main.go | 19 ++++++++++++++++---
 3 files changed, 19 insertions(+), 3 deletions(-)

Commit: 3b1448bd8beb

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.

0 participants