Skip to content

Commit bc06454

Browse files
author
Bernd Warmuth
committed
feat: add grace period option
Signed-off-by: Bernd Warmuth <[email protected]>
1 parent 334b5c2 commit bc06454

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/Config.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public final class Config {
1818

1919
static final int DEFAULT_DEADLINE = 500;
2020
static final int DEFAULT_STREAM_DEADLINE_MS = 10 * 60 * 1000;
21+
static final int DEFAULT_STREAM_RETRY_GRACE_PERIOD = 50_000;
2122
static final int DEFAULT_MAX_CACHE_SIZE = 1000;
2223
static final long DEFAULT_KEEP_ALIVE = 0;
2324

@@ -38,6 +39,7 @@ public final class Config {
3839
static final String KEEP_ALIVE_MS_ENV_VAR_NAME_OLD = "FLAGD_KEEP_ALIVE_TIME";
3940
static final String KEEP_ALIVE_MS_ENV_VAR_NAME = "FLAGD_KEEP_ALIVE_TIME_MS";
4041
static final String TARGET_URI_ENV_VAR_NAME = "FLAGD_TARGET_URI";
42+
static final String STREAM_RETRY_GRACE_PERIOD = "FLAGD_RETRY_GRACE_PERIOD_MS";
4143

4244
static final String RESOLVER_RPC = "rpc";
4345
static final String RESOLVER_IN_PROCESS = "in-process";
@@ -55,7 +57,7 @@ public final class Config {
5557
public static final String LRU_CACHE = CacheType.LRU.getValue();
5658
static final String DEFAULT_CACHE = LRU_CACHE;
5759

58-
static final int DEFAULT_MAX_EVENT_STREAM_RETRIES = 5;
60+
static final int DEFAULT_MAX_EVENT_STREAM_RETRIES = 7;
5961
static final int BASE_EVENT_STREAM_RETRY_BACKOFF_MS = 1000;
6062

6163
static String fallBackToEnvOrDefault(String key, String defaultValue) {

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdOptions.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package dev.openfeature.contrib.providers.flagd;
22

3-
import static dev.openfeature.contrib.providers.flagd.Config.fallBackToEnvOrDefault;
4-
import static dev.openfeature.contrib.providers.flagd.Config.fromValueProvider;
5-
6-
import java.util.function.Function;
7-
83
import dev.openfeature.contrib.providers.flagd.resolver.process.storage.connector.Connector;
94
import dev.openfeature.sdk.EvaluationContext;
105
import dev.openfeature.sdk.ImmutableContext;
@@ -14,6 +9,11 @@
149
import lombok.Builder;
1510
import lombok.Getter;
1611

12+
import java.util.function.Function;
13+
14+
import static dev.openfeature.contrib.providers.flagd.Config.fallBackToEnvOrDefault;
15+
import static dev.openfeature.contrib.providers.flagd.Config.fromValueProvider;
16+
1717
/**
1818
* FlagdOptions is a builder to build flagd provider options.
1919
*/
@@ -101,6 +101,12 @@ public class FlagdOptions {
101101
private int streamDeadlineMs = fallBackToEnvOrDefault(Config.STREAM_DEADLINE_MS_ENV_VAR_NAME,
102102
Config.DEFAULT_STREAM_DEADLINE_MS);
103103

104+
/**
105+
* Amount of stream retry attempts before provider moves from STALE to ERROR
106+
* Defaults to 5
107+
*/
108+
@Builder.Default
109+
private int streamRetryGracePeriod = fallBackToEnvOrDefault(Config.STREAM_RETRY_GRACE_PERIOD, Config.DEFAULT_STREAM_RETRY_GRACE_PERIOD);
104110
/**
105111
* Selector to be used with flag sync gRPC contract.
106112
**/

0 commit comments

Comments
 (0)