Releases: launchdarkly/dotnet-core
LaunchDarkly-ServerSdk-8.11.0-beta.1
This release contains support for our second generation flag delivery protocol, also known as data-saving mode.
It is available via nuget: https://www.nuget.org/packages/LaunchDarkly.ServerSdk/8.11.0-beta.1
This SDK version will operate using our first generation flag delivery protocol unless configured specifcally to use our new protocol.
In the SDK support for the new protocol is defined by a DataSystem. Configuring a DataSystem will enable the use of the new protocol.
The DataSystem includes a more sophisticated configuration for initializers, which are a means of getting an initial SDK payload, and synchronizers which keep the SDK up to date.
Configuration
There are a number of pre-defined configurations available for the data system depending on the SDK deployment.
Default
This is the LaunchDarkly recommended default setting for the data system. This configuration uses a two-phase strategy for initialization (getting you) as well as including fallbacks for synchronization.
The SDK will attempt to get an initial payload by making a single poll to our polling endpoints, and then will keep that payload up to date via streaming. If that initial polling process fails, then the SDK can still initialize via streaming once it enters its synchronization phase. Similarly, in the synchronization phase, the SDK can fallback to polling if it experiences issues with streaming.
var config = Configuration.Builder("your-sdk-key")
.DataSystem(Components.DataSystem().Default())
.Build();Polling Only or Streaming Only
The SDK can be configured to only use polling, or only use streaming. This isn't the recommended mode, and in this mode there are not as many fallbacks available.
Polling:
var config = Configuration.Builder(Environment.GetEnvironmentVariable("LAUNCHDARKLY_SDK_KEY"))
.DataSystem(Components.DataSystem().Polling())
.Build();Streaming:
var config = Configuration.Builder(Environment.GetEnvironmentVariable("LAUNCHDARKLY_SDK_KEY"))
.DataSystem(Components.DataSystem().Streaming())
.Build();Note that in streaming only mode polling may still be used if we need to disable our second generation protocol. In this case the data system will receive a request to fallback to our v1 protocol and it will use polling to do so.
With a Persistent Store
When configured with a persistent store the SDK uses the same strategy for initialization and synchronization as Default, but with the addition of a persistent store.
If flags are evaluated before the SDK has finished initializing, then cached values can be used from the store. Once the SDK initialization process completes flags are kept up to date in a memory cache, and persisted into the store. Flags are always maintained in memory after initialization, versus our previous implementation which used a TTL on each item.
When using a persistent store you will need to use our persistence integrations.
Using a redis persistent store:
var config = Configuration.Builder(Environment.GetEnvironmentVariable("LAUNCHDARKLY_SDK_KEY"))
.DataSystem(Components.DataSystem().PersistentStore(Components.PersistentDataStore(Redis.DataStore())))
.Build();Daemon Mode
When using daemon mode the SDK doesn't request a flag payload from LaunchDarkly. Instead it depends on flags being written to a persistent store instance by the relay proxy.
In this mode configuration is read from a store as needed and cached in memory with a TTL. The TTL determines how fresh the data for any given item will be.
Using a redis persistent store:
var config = Configuration.Builder(Environment.GetEnvironmentVariable("LAUNCHDARKLY_SDK_KEY"))
.DataSystem(Components.DataSystem().Daemon(Components.PersistentDataStore(Redis.DataStore())))
.Build();Known Issues
- When a persistent store experiences an outage while the SDK is attempting to write to it, then when that store later recovers it may not be updated to the current state. The in-memory state of the SDK will still contain all updates it has received.
LaunchDarkly.ServerSdk: v8.10.4
LaunchDarkly.ServerSdk.DynamoDB: v5.0.0
5.0.0 (2025-10-22)
⚠ BREAKING CHANGES
- Drop support for AWSSDK.DynamoDB v3 (#173)
Features
This PR was generated with Release Please. See documentation.
LaunchDarkly.ServerSdk.DynamoDB: v4.0.2
4.0.2 (2025-10-21)
Bug Fixes
- Fix package deployment process (#174) (3b2ce8b)
- Prevent using incompatible AWS version (#171) (5496a64)
This PR was generated with Release Please. See documentation.