launchdarkly / node-server-sdk

LaunchDarkly Server-side SDK for Node
Other
79 stars 65 forks source link

Allow persistent storage of LaunchDarkly flags so that they can be restored at startup #256

Closed ehsan closed 2 years ago

ehsan commented 2 years ago

Is your feature request related to a problem? Please describe. We are using LD for features which should "stay" the correct value throughout the lifetime of the program, including early startup before LD has had a chance to initialize and fetch its flags. Right now we're building a custom solution in the native SDK but the JS SDK doesn't provide the necessary APIs unfortunately.

It would be nice to be able to rely on LD flags no matter when they are queried.

Describe the solution you'd like Something similar to the solution in the .NET SDK would be great!

Describe alternatives you've considered We haven't yet found a good alternative solution yet.

Additional context Please see this issue and the relevant discussion there.

eli-darkly commented 2 years ago

To be clear, are you talking about our server-side Node SDK (this project here), or the client-side Node SDK (https://github.com/launchdarkly/node-client-sdk)? The link you provided to the .NET SDK is the client-side one. The server-side Node SDK— like most of the LaunchDarkly server-side SDKs for other languages— has several database integrations available for persistent storage.

ehsan commented 2 years ago

Sorry you're right, I had the wrong SDK. Apologies for the noise. 😄

eli-darkly commented 2 years ago

@ehsan No worries, it's a common mistake and I'm the one who would be answering your question anyway - just wanted to make sure I understood the question. It's a reasonable request, and we've had something like that in mind for a while as part of a bigger redesign of the SDK; it would probably end up looking more or less like it does in the client-side .NET SDK. One issue that's slightly different is that .NET already has a standard API for per-application/per-user file storage, with a specific convention for where the files live, and I don't think Node really provides such a thing so we would have to make some decisions about the behavior.