You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on May 30, 2024. It is now read-only.
When a connection issue to launch darkly's servers is simulated for a new uninitialized LDClient and a persistent feature store (redis) is supplied, the expectation is that the feature store cache will be used to evaluate the flags, however in my tests it appears that prior to initialization the feature store cache is not consulted and the hardcoded default value is returned instead. This greatly reduces the effectiveness of a persistent feature store in the event that launch darkly's servers are down for an extended period of time. In such a scenario we would not be able to restart our servers because doing so would put our LDClients in an uninitialized state and our persistent cache would be useless. This also seems to contradict the documentation:
Our SDKs can be configured to use Redis as a persistent store, so even if an initial connection to LaunchDarkly fails, the last flag configurations will be used instead of the fallbacks.
I believe the source of the problem is in this bit of code from LDClient.class:236:
if (!this.initialized()) {
logger.warn("Evaluation called before Client has been initialized for feature flag " + featureKey + "; returning default value");
this.sendFlagRequestEvent(featureKey, user, defaultValue, defaultValue, (Integer)null);
return defaultValue;
} else {
As you can see, if an initial connection is not established; the featureStore is never consulted.
The text was updated successfully, but these errors were encountered:
Hi, thanks for pointing this out. We discussed it and we agree with you. We have added this to our backlog and we will let you know when we have a solution.
When a connection issue to launch darkly's servers is simulated for a new uninitialized LDClient and a persistent feature store (redis) is supplied, the expectation is that the feature store cache will be used to evaluate the flags, however in my tests it appears that prior to initialization the feature store cache is not consulted and the hardcoded default value is returned instead. This greatly reduces the effectiveness of a persistent feature store in the event that launch darkly's servers are down for an extended period of time. In such a scenario we would not be able to restart our servers because doing so would put our LDClients in an uninitialized state and our persistent cache would be useless. This also seems to contradict the documentation:
https://support.launchdarkly.com/hc/en-us/articles/115002374068-Do-you-support-Redis-caching-
which states:
I believe the source of the problem is in this bit of code from LDClient.class:236:
As you can see, if an initial connection is not established; the featureStore is never consulted.
The text was updated successfully, but these errors were encountered: