Sylwester Lachiewicz created THRIFT-6209:
--------------------------------------------
Summary: Go: Provide standard Retry and Circuit Breaker client
middlewares
Key: THRIFT-6209
URL: https://issues.apache.org/jira/browse/THRIFT-6209
Project: Thrift
Issue Type: Improvement
Components: Go - Library
Reporter: Sylwester Lachiewicz
THRIFT-5164 introduced the ClientMiddleware interface to lib/go/thrift, but the
library currently does not provide standard, production-ready middleware
implementations. Consequently, users must repeatedly implement custom retry
loops, exponential backoff, and circuit breaker logic from scratch.
### Proposed Solution
Provide standard, opt-in client middlewares in lib/go/thrift:
1. Retry Middleware:
- NewRetryMiddleware(maxAttempts int, backoff BackoffStrategy, retryable
func(error) bool) ClientMiddleware.
- Standard backoff strategies: ExponentialBackoff, LinearBackoff, and
ConstantBackoff.
- Context-aware cancellation checks between retry attempts.
2. Circuit Breaker Middleware / Adapter:
- Provide a circuit breaker adapter interface and helper middleware to fail
fast during downstream outages.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)