Class DataSystemModes
A set of different data system modes which provided pre-configured DataSystemBuilders.
This class is not stable, and not subject to any backwards compatibility guarantees or semantic versioning. It is not suitable for production usage. Do not use it. You have been warned.
Inherited Members
Namespace: LaunchDarkly.Sdk.Server.Integrations
Assembly: LaunchDarkly.ServerSdk.dll
Syntax
public sealed class DataSystemModes
Constructors
View SourceDataSystemModes()
Declaration
public DataSystemModes()
Methods
| Edit this page View SourceCustom()
Custom returns a builder suitable for creating a custom data acquisition strategy. You may configure how the SDK uses a Persistent Store, how the SDK obtains an initial set of data, and how the SDK keeps data up to date.
Declaration
public DataSystemBuilder Custom()
Returns
| Type | Description |
|---|---|
| DataSystemBuilder | a builder without any base configuration |
Remarks
var config = Configuration.Builder("my-sdk-key")
.DataSystem(Components.DataSystem().Custom()
.Initializers(DataSystemComponents.Polling())
.Synchronizers(DataSystemComponents.Streaming(), DataSystemComponents.Polling())
.FDv1FallbackSynchronizer(DataSystemComponents.FDv1Polling());
Daemon(IComponentConfigurer<IDataStore>)
Configures the SDK to read from a persistent store integration that is populated by Relay Proxy or other SDKs. The SDK will not connect to LaunchDarkly. In this mode, the SDK never writes to the data store.
Declaration
public DataSystemBuilder Daemon(IComponentConfigurer<IDataStore> persistentStore)
Parameters
| Type | Name | Description |
|---|---|---|
| IComponentConfigurer<IDataStore> | persistentStore |
Returns
| Type | Description |
|---|---|
| DataSystemBuilder | a builder which is configured for daemon mode |
Remarks
var config = Configuration.Builder("my-sdk-key")
.DataSystem(Components.DataSystem().Daemon());
Default()
Configure's LaunchDarkly's recommended flag data acquisition strategy.
Currently, it operates a two-phase method for getting data: first, it requests data from LaunchDarkly's global CDN. Then, it initiates a streaming connection to LaunchDarkly's Flag Delivery services to receive real-time updates. If the streaming connection is interrupted for an extended period of time, the SDK will automatically fall back to polling the global CDN for updates.
Declaration
public DataSystemBuilder Default()
Returns
| Type | Description |
|---|---|
| DataSystemBuilder | a builder containing our default configuration |
Remarks
var config = Configuration.Builder("my-sdk-key")
.DataSystem(Components.DataSystem().Default());
PersistentStore(IComponentConfigurer<IDataStore>)
PersistentStore is similar to Default, with the addition of a persistent store integration. Before data has arrived from LaunchDarkly, the SDK is able to evaluate flags using data from the persistent store. Once fresh data is available, the SDK will no longer read from the persistent store, although it will keep it up to date.
Declaration
public DataSystemBuilder PersistentStore(IComponentConfigurer<IDataStore> persistentStore)
Parameters
| Type | Name | Description |
|---|---|---|
| IComponentConfigurer<IDataStore> | persistentStore |
Returns
| Type | Description |
|---|---|
| DataSystemBuilder | a builder which is configured for persistent store mode |
Remarks
var config = Configuration.Builder("my-sdk-key")
.DataSystem(Components.DataSystem().
PersistentStore(Components.PersistentDataStore(SomeDatabaseName.DataStore()))););
Polling()
Configured the SDK to poll data instead of receiving real-time updates via a stream.
This is not our recommended strategy, which is Default(), but it may be required for certain network configurations.
Declaration
public DataSystemBuilder Polling()
Returns
| Type | Description |
|---|---|
| DataSystemBuilder | a builder containing a polling-only configuration |
Remarks
var config = Configuration.Builder("my-sdk-key")
.DataSystem(Components.DataSystem().Polling());
Streaming()
Configures the SDK to stream data without polling for the initial payload.
This is not our recommended strategy, which is Default(), but it may be suitable for some situations.
Declaration
public DataSystemBuilder Streaming()
Returns
| Type | Description |
|---|---|
| DataSystemBuilder | a builder containing a primarily streaming configuration |
Remarks
This configuration will not automatically fall back to polling, but it can be instructed by LaunchDarkly to fall back to polling in certain situations.