Skip to content

Commit e1fb4d3

Browse files
committed
chore: use latest retryablehttp client
🔒 Scanned for secrets using gitleaks 8.30.0
1 parent e3b7ab1 commit e1fb4d3

File tree

7 files changed

+30
-40
lines changed

7 files changed

+30
-40
lines changed

gateway/webhook/setup.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func Setup(gwHandle Gateway, transformerFeaturesService TransformerFeaturesServi
102102

103103
transformerClient := transformerclient.NewClient(transformerClientConfig)
104104
retryableClientConfig := &retryablehttp.Config{
105-
MaxRetry: conf.GetIntVar(5, 1, "Gateway.webhook.maxRetry"),
105+
MaxTries: conf.GetIntVar(6, 1, "Gateway.webhook.maxTries"),
106106
InitialInterval: conf.GetDurationVar(100, time.Millisecond, "Gateway.webhook.minRetryTime"),
107107
MaxInterval: conf.GetDurationVar(1000, time.Millisecond, "Gateway.webhook.maxRetryTime"),
108108
MaxElapsedTime: conf.GetDurationVar(10, time.Second, "Gateway.webhook.maxElapsedTime"),

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ require (
8686
github.com/rudderlabs/bing-ads-go-sdk v0.2.3
8787
github.com/rudderlabs/compose-test v0.1.3
8888
github.com/rudderlabs/keydb v1.3.0
89-
github.com/rudderlabs/rudder-go-kit v0.73.0
89+
github.com/rudderlabs/rudder-go-kit v0.73.1-0.20260309115357-9d6e019c27d5
9090
github.com/rudderlabs/rudder-observability-kit v0.0.6
9191
github.com/rudderlabs/rudder-schemas v0.9.1
9292
github.com/rudderlabs/rudder-transformer/go v1.122.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,8 +1205,8 @@ github.com/rudderlabs/keydb v1.3.0 h1:lbVFYhMAW8DUR79i3p49AyGQ1ytsH2uuay9bA0doH6
12051205
github.com/rudderlabs/keydb v1.3.0/go.mod h1:PHHhQmlHVgIJht22E0Sr1ythB3NBiO2jUkr/5aBf0IA=
12061206
github.com/rudderlabs/parquet-go v0.0.3 h1:/zgRj929pGKHsthc0kw8stVEcFu1JUcpxDRlhxjSLic=
12071207
github.com/rudderlabs/parquet-go v0.0.3/go.mod h1:WmwBOdvwpXl2aZGRk3NxxgzC/DaWGfax3jrCRhKhtSo=
1208-
github.com/rudderlabs/rudder-go-kit v0.73.0 h1:RZQ7PfWRMzvLs2nx2OXvlOBjbL+jVJsNTbPpnv5oSTE=
1209-
github.com/rudderlabs/rudder-go-kit v0.73.0/go.mod h1:driWlDLLfAS9eiLRrATxZn0iUEaaihp+4f1NVSApvH0=
1208+
github.com/rudderlabs/rudder-go-kit v0.73.1-0.20260309115357-9d6e019c27d5 h1:mOLF0uEk6X+WtqDLruNOw98JVT/AkmFDBuEtL3Rp5XQ=
1209+
github.com/rudderlabs/rudder-go-kit v0.73.1-0.20260309115357-9d6e019c27d5/go.mod h1:wYVmYfGQPCtwUU51ljCRgegryH98+kLFAskC2xvLwmE=
12101210
github.com/rudderlabs/rudder-observability-kit v0.0.6 h1:xIA/1Sp38B542EYzxR7qUfNGJwsQCpmBnl6h5ul0AHA=
12111211
github.com/rudderlabs/rudder-observability-kit v0.0.6/go.mod h1:nR3GvY7HvuBaBqOKFfzLP9uYZu7OpzMqW2eeT2ikXtU=
12121212
github.com/rudderlabs/rudder-schemas v0.9.1 h1:krXn8jSYMKc5hSgOoaCz6E7m5w/5bspxRK7J/XTqLZ0=

internal/transformer-client/client.go

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
"github.com/bufbuild/httplb/resolver"
1616
"github.com/cenkalti/backoff/v5"
1717

18-
"github.com/rudderlabs/rudder-go-kit/config"
1918
"github.com/rudderlabs/rudder-go-kit/retryablehttp"
2019
"github.com/rudderlabs/rudder-go-kit/stats"
2120
)
@@ -29,7 +28,7 @@ const (
2928
defaultClientTTL = 10 * time.Second
3029
defaultRecycleTTL = 60 * time.Second
3130

32-
defaultRetryRudderErrorsMaxRetry = -1
31+
defaultRetryRudderErrorsMaxTries = 0
3332
defaultRetryRudderErrorsInitialInterval = 1 * time.Second
3433
defaultRetryRudderErrorsMaxInterval = 30 * time.Second
3534
defaultRetryRudderErrorsMaxElapsedTime = 0
@@ -54,7 +53,7 @@ type ClientConfig struct {
5453
// Configuration for retryable HTTP client in case of [X-Rudder-Should-Retry: true] HTTP 503 responses
5554
RetryRudderErrors struct {
5655
Enabled bool // false
57-
MaxRetry int // -1 - no limit
56+
MaxTries int // 0 - no limit
5857
InitialInterval time.Duration // 1s
5958
MaxInterval time.Duration // 30s
6059
MaxElapsedTime time.Duration // 0s - no limit
@@ -152,15 +151,15 @@ func buildRetryableConfig(clientConfig *ClientConfig) *retryablehttp.Config {
152151

153152
// Use ClientConfig values directly
154153
retryConfig := &retryablehttp.Config{
155-
MaxRetry: clientConfig.RetryRudderErrors.MaxRetry,
154+
MaxTries: clientConfig.RetryRudderErrors.MaxTries,
156155
InitialInterval: clientConfig.RetryRudderErrors.InitialInterval,
157156
MaxInterval: clientConfig.RetryRudderErrors.MaxInterval,
158157
MaxElapsedTime: clientConfig.RetryRudderErrors.MaxElapsedTime,
159158
Multiplier: clientConfig.RetryRudderErrors.Multiplier,
160159
}
161160

162-
if retryConfig.MaxRetry == 0 {
163-
retryConfig.MaxRetry = defaultRetryRudderErrorsMaxRetry
161+
if retryConfig.MaxTries < 0 {
162+
retryConfig.MaxTries = defaultRetryRudderErrorsMaxTries
164163
}
165164
if retryConfig.InitialInterval == 0 {
166165
retryConfig.InitialInterval = defaultRetryRudderErrorsInitialInterval
@@ -201,15 +200,6 @@ func getRecycleTTL(config *ClientConfig) time.Duration {
201200
}
202201

203202
func newRetryableHTTPClient(baseClient Client, retryableConfig *retryablehttp.Config) Client {
204-
if retryableConfig == nil {
205-
retryableConfig = &retryablehttp.Config{
206-
MaxRetry: config.GetIntVar(defaultRetryRudderErrorsMaxRetry, defaultRetryRudderErrorsMaxRetry, "Transformer.Client.Retryable.maxRetry"),
207-
InitialInterval: config.GetDurationVar(1, time.Second, "Transformer.Client.Retryable.initialInterval"),
208-
MaxInterval: config.GetDurationVar(30, time.Second, "Transformer.Client.Retryable.maxInterval"),
209-
MaxElapsedTime: config.GetDurationVar(0, time.Second, "Transformer.Client.Retryable.maxElapsedTime"),
210-
Multiplier: config.GetFloat64Var(defaultRetryRudderErrorsMultiplier, "Transformer.Client.Retryable.multiplier"),
211-
}
212-
}
213203
return retryablehttp.NewRetryableHTTPClient(
214204
retryableConfig,
215205
retryablehttp.WithHttpClient(baseClient),

internal/transformer-client/client_test.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ func TestClient_RetryBehavior(t *testing.T) {
3838
ClientTimeout: 10 * time.Second,
3939
RetryRudderErrors: struct {
4040
Enabled bool
41-
MaxRetry int
41+
MaxTries int
4242
InitialInterval time.Duration
4343
MaxInterval time.Duration
4444
MaxElapsedTime time.Duration
4545
Multiplier float64
4646
}{
4747
Enabled: true,
48-
MaxRetry: -1, // Unlimited retries
48+
MaxTries: 0, // Unlimited retries
4949
InitialInterval: 50 * time.Millisecond,
5050
MaxInterval: 200 * time.Millisecond,
5151
MaxElapsedTime: 5 * time.Second,
@@ -86,14 +86,14 @@ func TestClient_RetryBehavior(t *testing.T) {
8686
ClientTimeout: 10 * time.Second,
8787
RetryRudderErrors: struct {
8888
Enabled bool
89-
MaxRetry int
89+
MaxTries int
9090
InitialInterval time.Duration
9191
MaxInterval time.Duration
9292
MaxElapsedTime time.Duration
9393
Multiplier float64
9494
}{
9595
Enabled: true,
96-
MaxRetry: -1, // Unlimited retries
96+
MaxTries: 0, // Unlimited retries
9797
InitialInterval: 50 * time.Millisecond,
9898
MaxInterval: 200 * time.Millisecond,
9999
MaxElapsedTime: 1 * time.Second, // Short elapsed time to test timeout
@@ -144,14 +144,14 @@ func TestClient_RetryBehavior(t *testing.T) {
144144
ClientTimeout: 10 * time.Second,
145145
RetryRudderErrors: struct {
146146
Enabled bool
147-
MaxRetry int
147+
MaxTries int
148148
InitialInterval time.Duration
149149
MaxInterval time.Duration
150150
MaxElapsedTime time.Duration
151151
Multiplier float64
152152
}{
153153
Enabled: true,
154-
MaxRetry: -1, // Unlimited retries
154+
MaxTries: 0, // Unlimited retries
155155
InitialInterval: 50 * time.Millisecond,
156156
MaxInterval: 200 * time.Millisecond,
157157
MaxElapsedTime: 5 * time.Second,
@@ -201,14 +201,14 @@ func TestClient_RetryBehavior(t *testing.T) {
201201
ClientTimeout: 10 * time.Second,
202202
RetryRudderErrors: struct {
203203
Enabled bool
204-
MaxRetry int
204+
MaxTries int
205205
InitialInterval time.Duration
206206
MaxInterval time.Duration
207207
MaxElapsedTime time.Duration
208208
Multiplier float64
209209
}{
210210
Enabled: true,
211-
MaxRetry: -1, // Unlimited retries
211+
MaxTries: 0, // Unlimited retries
212212
InitialInterval: 50 * time.Millisecond,
213213
MaxInterval: 200 * time.Millisecond,
214214
MaxElapsedTime: 5 * time.Second,
@@ -247,14 +247,14 @@ func TestClient_RetryBehavior(t *testing.T) {
247247
ClientTimeout: 10 * time.Second,
248248
RetryRudderErrors: struct {
249249
Enabled bool
250-
MaxRetry int
250+
MaxTries int
251251
InitialInterval time.Duration
252252
MaxInterval time.Duration
253253
MaxElapsedTime time.Duration
254254
Multiplier float64
255255
}{
256256
Enabled: true,
257-
MaxRetry: -1, // Unlimited retries
257+
MaxTries: 0, // Unlimited retries
258258
InitialInterval: 50 * time.Millisecond,
259259
MaxInterval: 200 * time.Millisecond,
260260
MaxElapsedTime: 5 * time.Second,
@@ -289,14 +289,14 @@ func TestClient_ErrorsNotRetried(t *testing.T) {
289289
ClientTimeout: 1 * time.Second,
290290
RetryRudderErrors: struct {
291291
Enabled bool
292-
MaxRetry int
292+
MaxTries int
293293
InitialInterval time.Duration
294294
MaxInterval time.Duration
295295
MaxElapsedTime time.Duration
296296
Multiplier float64
297297
}{
298298
Enabled: true,
299-
MaxRetry: 0, // No retries
299+
MaxTries: 1, // No retries
300300
InitialInterval: 10 * time.Millisecond,
301301
MaxInterval: 50 * time.Millisecond,
302302
MaxElapsedTime: 500 * time.Millisecond,
@@ -330,14 +330,14 @@ func TestClient_ErrorsNotRetried(t *testing.T) {
330330
ClientTimeout: 1 * time.Second,
331331
RetryRudderErrors: struct {
332332
Enabled bool
333-
MaxRetry int
333+
MaxTries int
334334
InitialInterval time.Duration
335335
MaxInterval time.Duration
336336
MaxElapsedTime time.Duration
337337
Multiplier float64
338338
}{
339339
Enabled: true,
340-
MaxRetry: 0, // No retries
340+
MaxTries: 1, // No retries
341341
InitialInterval: 10 * time.Millisecond,
342342
MaxInterval: 50 * time.Millisecond,
343343
MaxElapsedTime: 500 * time.Millisecond,
@@ -379,14 +379,14 @@ func TestClient_ConfigurableRetrySettings(t *testing.T) {
379379
ClientTimeout: 10 * time.Second,
380380
RetryRudderErrors: struct {
381381
Enabled bool
382-
MaxRetry int
382+
MaxTries int
383383
InitialInterval time.Duration
384384
MaxInterval time.Duration
385385
MaxElapsedTime time.Duration
386386
Multiplier float64
387387
}{
388388
Enabled: true,
389-
MaxRetry: 1, // Only 1 retry
389+
MaxTries: 2, // Only 1 retry
390390
InitialInterval: 10 * time.Millisecond,
391391
MaxInterval: 50 * time.Millisecond,
392392
MaxElapsedTime: 500 * time.Millisecond,
@@ -426,14 +426,14 @@ func TestClient_ConfigurableRetrySettings(t *testing.T) {
426426
ClientTimeout: 10 * time.Second,
427427
RetryRudderErrors: struct {
428428
Enabled bool
429-
MaxRetry int
429+
MaxTries int
430430
InitialInterval time.Duration
431431
MaxInterval time.Duration
432432
MaxElapsedTime time.Duration
433433
Multiplier float64
434434
}{
435435
Enabled: true,
436-
MaxRetry: -1, // Allow unlimited retries but limit by time
436+
MaxTries: 0, // Allow unlimited retries but limit by time
437437
InitialInterval: 100 * time.Millisecond,
438438
MaxInterval: 200 * time.Millisecond,
439439
MaxElapsedTime: 1 * time.Millisecond, // Very short time to prevent retries
@@ -473,7 +473,7 @@ func TestClient_RetryDisabled(t *testing.T) {
473473
ClientTimeout: 10 * time.Second,
474474
RetryRudderErrors: struct {
475475
Enabled bool
476-
MaxRetry int
476+
MaxTries int
477477
InitialInterval time.Duration
478478
MaxInterval time.Duration
479479
MaxElapsedTime time.Duration

processor/internal/transformer/utils.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TransformerClientConfig(conf *config.Config, configPrefix string) *transfor
4343
transformerClientConfig.Recycle = conf.GetBoolVar(false, fmt.Sprintf("Transformer.Client.%s.recycle", configPrefix), "Transformer.Client.recycle")
4444
transformerClientConfig.RecycleTTL = conf.GetDurationVar(60, time.Second, fmt.Sprintf("Transformer.Client.%s.recycleTTL", configPrefix), "Transformer.Client.recycleTTL")
4545
transformerClientConfig.RetryRudderErrors.Enabled = conf.GetBoolVar(true, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.enabled", configPrefix), "Transformer.Client.retryRudderErrors.enabled")
46-
transformerClientConfig.RetryRudderErrors.MaxRetry = conf.GetIntVar(-1, 1, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.maxRetry", configPrefix), "Transformer.Client.retryRudderErrors.maxRetry")
46+
transformerClientConfig.RetryRudderErrors.MaxTries = conf.GetIntVar(0, 1, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.maxTries", configPrefix), "Transformer.Client.retryRudderErrors.maxTries")
4747
transformerClientConfig.RetryRudderErrors.InitialInterval = conf.GetDurationVar(1, time.Second, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.initialInterval", configPrefix), "Transformer.Client.retryRudderErrors.initialInterval")
4848
transformerClientConfig.RetryRudderErrors.MaxInterval = conf.GetDurationVar(30, time.Second, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.maxInterval", configPrefix), "Transformer.Client.retryRudderErrors.maxInterval")
4949
transformerClientConfig.RetryRudderErrors.MaxElapsedTime = conf.GetDurationVar(0, time.Second, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.maxElapsedTime", configPrefix), "Transformer.Client.retryRudderErrors.maxElapsedTime")

router/transformer/transformer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ func (trans *handle) transformerClientConfig() *transformerclient.ClientConfig {
618618
transformerClientConfig.Recycle = config.GetBoolVar(false, "Transformer.Client.DestinationTransformer.recycle", "Transformer.Client.recycle")
619619
transformerClientConfig.RecycleTTL = config.GetDurationVar(60, time.Second, "Transformer.Client.DestinationTransformer.recycleTTL", "Transformer.Client.recycleTTL")
620620
transformerClientConfig.RetryRudderErrors.Enabled = config.GetBoolVar(true, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.enabled", "Router"), "Transformer.Client.retryRudderErrors.enabled")
621-
transformerClientConfig.RetryRudderErrors.MaxRetry = config.GetIntVar(-1, 1, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.maxRetry", "Router"), "Transformer.Client.retryRudderErrors.maxRetry")
621+
transformerClientConfig.RetryRudderErrors.MaxTries = config.GetIntVar(0, 1, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.maxTries", "Router"), "Transformer.Client.retryRudderErrors.maxTries")
622622
transformerClientConfig.RetryRudderErrors.InitialInterval = config.GetDurationVar(1, time.Second, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.initialInterval", "Router"), "Transformer.Client.retryRudderErrors.initialInterval")
623623
transformerClientConfig.RetryRudderErrors.MaxInterval = config.GetDurationVar(30, time.Second, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.maxInterval", "Router"), "Transformer.Client.retryRudderErrors.maxInterval")
624624
transformerClientConfig.RetryRudderErrors.MaxElapsedTime = config.GetDurationVar(0, time.Second, fmt.Sprintf("Transformer.Client.%s.retryRudderErrors.maxElapsedTime", "Router"), "Transformer.Client.retryRudderErrors.maxElapsedTime")

0 commit comments

Comments
 (0)