{"id":"src_obJ0EbMRLqpLGVQO8FttE","slug":"launchdarkly-net-sdk","name":".NET SDK","type":"github","url":"https://github.com/launchdarkly/dotnet-core","orgId":"org_bSzZpRzHXJ2mMJRcQ0ETB","org":{"slug":"launchdarkly","name":"LaunchDarkly"},"isPrimary":false,"metadata":"{\"evaluatedMethod\":\"github\",\"evaluatedAt\":\"2026-04-11T13:43:13.717Z\",\"changelogDetectedAt\":\"2026-04-11T13:43:40.840Z\"}","releaseCount":56,"releasesLast30Days":4,"avgReleasesPerWeek":0.7,"latestVersion":"LaunchDarkly.ServerSdk-v8.12.0","latestDate":"2026-04-16T21:33:23.000Z","changelogUrl":null,"hasChangelogFile":false,"lastFetchedAt":"2026-04-19T07:02:42.124Z","trackingSince":"2024-08-27T16:35:49.000Z","releases":[{"id":"rel_3OPk9Yn7j5sJ9LTRzgGcb","version":"LaunchDarkly.ServerSdk-v8.12.0","title":"LaunchDarkly.ServerSdk: v8.12.0","summary":"## [8.12.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.11.2...LaunchDarkly.ServerSdk-v8.12.0) (2026-04-16)\n\n\n### Fe...","content":"## [8.12.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.11.2...LaunchDarkly.ServerSdk-v8.12.0) (2026-04-16)\n\n\n### Features\n\n* Make Status ToString() methods format consistent  ([#247](https://github.com/launchdarkly/dotnet-core/issues/247)) ([6373f98](https://github.com/launchdarkly/dotnet-core/commit/6373f987f27f479aa256e94ab472037623e1febc))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-04-16T21:33:23.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk-v8.12.0","media":[]},{"id":"rel_lBEKE-6p_IavdPFJ2MNkI","version":"LaunchDarkly.ClientSdk-v5.7.1","title":"LaunchDarkly.ClientSdk: v5.7.1","summary":"## [5.7.1](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.7.0...LaunchDarkly.ClientSdk-v5.7.1) (2026-04-09)\n\n\n### Bug F...","content":"## [5.7.1](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.7.0...LaunchDarkly.ClientSdk-v5.7.1) (2026-04-09)\n\n\n### Bug Fixes\n\n* Update CommonSdk to 7.2.0 and InternalSdk to 3.6.1 ([#243](https://github.com/launchdarkly/dotnet-core/issues/243)) ([9e8e5ff](https://github.com/launchdarkly/dotnet-core/commit/9e8e5ff1734548462a681ab66147acc2bd2f2895))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-04-10T13:11:44.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ClientSdk-v5.7.1","media":[]},{"id":"rel_2cS98XYpVt522vsQi80W_","version":"LaunchDarkly.ServerSdk-v8.11.2","title":"LaunchDarkly.ServerSdk: v8.11.2","summary":"## [8.11.2](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.11.1...LaunchDarkly.ServerSdk-v8.11.2) (2026-04-09)\n\n\n### Bu...","content":"## [8.11.2](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.11.1...LaunchDarkly.ServerSdk-v8.11.2) (2026-04-09)\n\n\n### Bug Fixes\n\n* Update CommonSdk to 7.2.0 and InternalSdk to 3.6.1 ([#243](https://github.com/launchdarkly/dotnet-core/issues/243)) ([9e8e5ff](https://github.com/launchdarkly/dotnet-core/commit/9e8e5ff1734548462a681ab66147acc2bd2f2895))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-04-09T22:33:46.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk-v8.11.2","media":[]},{"id":"rel_ExipSnlyodmBnsZVSA0MD","version":"LaunchDarkly.CommonSdk-v7.2.0","title":"LaunchDarkly.CommonSdk: v7.2.0","summary":"## [7.2.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.CommonSdk-v7.1.1...LaunchDarkly.CommonSdk-v7.2.0) (2026-04-08)\n\n\n### Featu...","content":"## [7.2.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.CommonSdk-v7.1.1...LaunchDarkly.CommonSdk-v7.2.0) (2026-04-08)\n\n\n### Features\n\n* Make common sdk AOT safe ([#169](https://github.com/launchdarkly/dotnet-core/issues/169)) ([8c6948e](https://github.com/launchdarkly/dotnet-core/commit/8c6948ea89d3c71abc24e6e0284a5dde62bd54b3))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-04-08T22:00:25.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.CommonSdk-v7.2.0","media":[]},{"id":"rel_6761J9PZnzOvClmNTyRj_","version":"LaunchDarkly.ClientSdk-v5.7.0","title":"LaunchDarkly.ClientSdk: v5.7.0","summary":"## [5.7.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.6.0...LaunchDarkly.ClientSdk-v5.7.0) (2026-03-13)\n\n\n### Featu...","content":"## [5.7.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.6.0...LaunchDarkly.ClientSdk-v5.7.0) (2026-03-13)\n\n\n### Features\n\n* Add Identify hooks to Client SDK ([#234](https://github.com/launchdarkly/dotnet-core/issues/234)) ([ddbb81f](https://github.com/launchdarkly/dotnet-core/commit/ddbb81fd3be7bf7b6c49962c5fa4b2a93b9cf44c))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-03-13T21:34:10.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ClientSdk-v5.7.0","media":[]},{"id":"rel_BnlPmWGMFFt6oJs5jb3Ra","version":"LaunchDarkly.ServerSdk.Ai-v0.9.3","title":"LaunchDarkly.ServerSdk.Ai: v0.9.3","summary":"## [0.9.3](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.Ai-v0.9.2...LaunchDarkly.ServerSdk.Ai-v0.9.3) (2026-03-05)\n\n\n###...","content":"## [0.9.3](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.Ai-v0.9.2...LaunchDarkly.ServerSdk.Ai-v0.9.3) (2026-03-05)\n\n\n### Bug Fixes\n\n* Make defaultValue optional with a disabled default ([#232](https://github.com/launchdarkly/dotnet-core/issues/232)) ([f69d420](https://github.com/launchdarkly/dotnet-core/commit/f69d42034bb960f83b831d2edf6788f70a20ceed))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-03-05T15:19:32.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk.Ai-v0.9.3","media":[]},{"id":"rel_dvzfVas3JkJ7AVhixrGiG","version":"LaunchDarkly.ClientSdk-v5.6.0","title":"LaunchDarkly.ClientSdk: v5.6.0","summary":"## [5.6.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.5.4...LaunchDarkly.ClientSdk-v5.6.0) (2026-03-03)\n\n\n### Featu...","content":"## [5.6.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.5.4...LaunchDarkly.ClientSdk-v5.6.0) (2026-03-03)\n\n\n### Features\n\n* Add plugin support to Client SDK ([#229](https://github.com/launchdarkly/dotnet-core/issues/229)) ([ce5cdd9](https://github.com/launchdarkly/dotnet-core/commit/ce5cdd989ef3850e80a61125b4cc3c36ae23b1a9))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-03-03T19:34:12.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ClientSdk-v5.6.0","media":[]},{"id":"rel_xI4IkENvIkOI_zAKXRjC5","version":"LaunchDarkly.ServerSdk.Ai-v0.9.2","title":"LaunchDarkly.ServerSdk.Ai: v0.9.2","summary":"## [0.9.2](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.Ai-v0.9.1...LaunchDarkly.ServerSdk.Ai-v0.9.2) (2026-02-25)\n\n\n###...","content":"## [0.9.2](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.Ai-v0.9.1...LaunchDarkly.ServerSdk.Ai-v0.9.2) (2026-02-25)\n\n\n### Bug Fixes\n\n* Improve usage reporting ([#228](https://github.com/launchdarkly/dotnet-core/issues/228)) ([376b6b0](https://github.com/launchdarkly/dotnet-core/commit/376b6b0cbca28c7b49e5f64ee54b1f6d317d99fa))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-02-25T23:14:37.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk.Ai-v0.9.2","media":[]},{"id":"rel_ueS25FC4gi0OOcJJUHfsO","version":"LaunchDarkly.ServerSdk-v8.11.1","title":"LaunchDarkly.ServerSdk: v8.11.1","summary":"## [8.11.1](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.11.0...LaunchDarkly.ServerSdk-v8.11.1) (2026-02-17)\n\n\n### Bu...","content":"## [8.11.1](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.11.0...LaunchDarkly.ServerSdk-v8.11.1) (2026-02-17)\n\n\n### Bug Fixes\n\n* IfMatchContext/AndMatchContext utilize context kind. ([#225](https://github.com/launchdarkly/dotnet-core/issues/225)) ([95bc949](https://github.com/launchdarkly/dotnet-core/commit/95bc9495984976833efd736f36fc4023c37eb663))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-02-17T23:22:11.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk-v8.11.1","media":[]},{"id":"rel_8XobeTK6OKwkyPWwSHwKA","version":"LaunchDarkly.ServerSdk-v8.11.0","title":"LaunchDarkly.ServerSdk: v8.11.0","summary":"## [8.11.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.10.4...LaunchDarkly.ServerSdk-v8.11.0) (2026-01-12)\r\n\r\n\r\n###...","content":"## [8.11.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.10.4...LaunchDarkly.ServerSdk-v8.11.0) (2026-01-12)\r\n\r\n\r\n### Features\r\n\r\n* **experimental:** Release EAP support for FDv2 data system. ([d78799a](https://github.com/launchdarkly/dotnet-core/commit/d78799acb38323c8ca7207046b41570e1d333a28))\r\n\r\n\r\n### Bug Fixes\r\n\r\n* Update FileDataSource to process reload triggers under lock. ([#199](https://github.com/launchdarkly/dotnet-core/issues/199)) ([75f51c6](https://github.com/launchdarkly/dotnet-core/commit/75f51c67bff8ccf36035a948763998c10f083dbd))\r\n\r\n### Data Saving Mode EAP\r\n\r\nThis release contains support for our second generation flag delivery protocol, also known as data-saving mode.\r\n\r\nThis SDK version will operate using our first generation flag delivery protocol unless configured specifcally to use our new protocol.\r\n\r\nIn the SDK support for the new protocol is defined by a `DataSystem`. Configuring a `DataSystem` will enable the use of the new protocol.\r\n\r\nThe `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.\r\n\r\n## Configuration\r\n\r\nThere are a number of pre-defined configurations available for the data system depending on the SDK deployment.\r\n\r\n### Default\r\n\r\nThis 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.\r\n\r\nThe 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.\r\n\r\n\r\n\r\n```csharp\r\nvar config = Configuration.Builder(\"your-sdk-key\")\r\n    .DataSystem(Components.DataSystem().Default())\r\n    .Build();\r\n```\r\n\r\n### Polling Only or Streaming Only\r\n\r\nThe 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.\r\n\r\nPolling:\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .DataSystem(Components.DataSystem().Polling())\r\n    .Build();\r\n```\r\n\r\nStreaming:\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .DataSystem(Components.DataSystem().Streaming())\r\n    .Build();\r\n```\r\n\r\nNote 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.\r\n\r\n### With a Persistent Store\r\n\r\nWhen 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.\r\n\r\nIf 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.\r\n\r\nWhen using a persistent store you will need to use our persistence integrations.\r\n\r\nUsing a redis persistent store:\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .DataSystem(Components.DataSystem().PersistentStore(Components.PersistentDataStore(Redis.DataStore())))\r\n    .Build();\r\n```\r\n\r\n### Daemon Mode\r\n\r\nWhen 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.\r\n\r\nIn 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.\r\n\r\nUsing a redis persistent store:\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .DataSystem(Components.DataSystem().Daemon(Components.PersistentDataStore(Redis.DataStore())))\r\n    .Build();\r\n```\r\n\r\n### Offline\r\n\r\nThe top-level `Offline` configuration applies to the data system.\r\n\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .Offline(true)\r\n    .Build();\r\n```\r\n\r\nIf the `Offline(true)` and a `DataSystem(...)` are both specified, then the initializers and synchronizers of the data system configuration will not be used.\r\n\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .Offline(true)\r\n    .DataSystem(Components.DataSystem().Default())\r\n    .Build();\r\n```\r\n\r\nThe `DataSystem` does not require the use of `Components.ExternalUpdatesOnly`. With the `DataSystem` the equivalent is to not specify any initializers, synchronizers, or fallback synchronizer.\r\n\r\n---\r\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\r\n\r\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-01-12T20:40:55.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk-v8.11.0","media":[]},{"id":"rel_YJTnjLpNZXsXMF2RJy-r6","version":"LaunchDarkly-ServerSdk-8.11.0-beta.1","title":"LaunchDarkly-ServerSdk-8.11.0-beta.1 ","summary":"This release contains support for our second generation flag delivery protocol, also known as data-saving mode.\r\n\r\nIt is available via nuget: https://...","content":"This release contains support for our second generation flag delivery protocol, also known as data-saving mode.\r\n\r\nIt is available via nuget: https://www.nuget.org/packages/LaunchDarkly.ServerSdk/8.11.0-beta.1\r\n\r\nThis SDK version will operate using our first generation flag delivery protocol unless configured specifcally to use our new protocol.\r\n\r\nIn the SDK support for the new protocol is defined by a `DataSystem`. Configuring a `DataSystem` will enable the use of the new protocol.\r\n\r\nThe `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.\r\n\r\n## Configuration\r\n\r\nThere are a number of pre-defined configurations available for the data system depending on the SDK deployment.\r\n\r\n### Default\r\n\r\nThis 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.\r\n\r\nThe 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.\r\n\r\n\r\n\r\n```csharp\r\nvar config = Configuration.Builder(\"your-sdk-key\")\r\n    .DataSystem(Components.DataSystem().Default())\r\n    .Build();\r\n```\r\n\r\n### Polling Only or Streaming Only\r\n\r\nThe 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.\r\n\r\nPolling:\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .DataSystem(Components.DataSystem().Polling())\r\n    .Build();\r\n```\r\n\r\nStreaming:\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .DataSystem(Components.DataSystem().Streaming())\r\n    .Build();\r\n```\r\n\r\nNote 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.\r\n\r\n### With a Persistent Store\r\n\r\nWhen 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.\r\n\r\nIf 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.\r\n\r\nWhen using a persistent store you will need to use our persistence integrations.\r\n\r\nUsing a redis persistent store:\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .DataSystem(Components.DataSystem().PersistentStore(Components.PersistentDataStore(Redis.DataStore())))\r\n    .Build();\r\n```\r\n\r\n### Daemon Mode\r\n\r\nWhen 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.\r\n\r\nIn 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.\r\n\r\nUsing a redis persistent store:\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .DataSystem(Components.DataSystem().Daemon(Components.PersistentDataStore(Redis.DataStore())))\r\n    .Build();\r\n```\r\n\r\n### Offline\r\n\r\nThe top-level `Offline` configuration applies to the data system.\r\n\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .Offline(true)\r\n    .Build();\r\n```\r\n\r\nIf the `Offline(true)` and a `DataSystem(...)` are both specified, then the initializers and synchronizers of the data system configuration will not be used.\r\n\r\n```csharp\r\nvar config = Configuration.Builder(Environment.GetEnvironmentVariable(\"LAUNCHDARKLY_SDK_KEY\"))\r\n    .Offline(true)\r\n    .DataSystem(Components.DataSystem().Default())\r\n    .Build();\r\n```\r\n\r\nThe `DataSystem` does not require the use of `Components.ExternalUpdatesOnly`. With the `DataSystem` the equivalent is to not specify any initializers, synchronizers, or fallback synchronizer.\r\n\r\n## Known Issues\r\n\r\n- 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.\r\n\r\n- `Components.ExternalUpdatesOnly` should not be used as a `DataSystem` initializer or synchronizer. This component doesn't emit any payloads, and will result in an initialization timeout.\r\n","publishedAt":"2025-12-19T21:44:42.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly-ServerSdk-8.11.0-beta.1","media":[]},{"id":"rel_qiWXyKq8HpaxUT9pG9aHV","version":"LaunchDarkly.ServerSdk-v8.10.4","title":"LaunchDarkly.ServerSdk: v8.10.4","summary":"## [8.10.4](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.10.3...LaunchDarkly.ServerSdk-v8.10.4) (2025-11-10)\n\n\n### Bu...","content":"## [8.10.4](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.10.3...LaunchDarkly.ServerSdk-v8.10.4) (2025-11-10)\n\n\n### Bug Fixes\n\n* Use thread-safe hash for big segments hashing. ([#180](https://github.com/launchdarkly/dotnet-core/issues/180)) ([06196d8](https://github.com/launchdarkly/dotnet-core/commit/06196d881d306e2bd09631469c657a4f11685fcc))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2025-11-10T21:02:18.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk-v8.10.4","media":[]},{"id":"rel_Nb582BvfOhQwaGuOm66dY","version":"LaunchDarkly.ServerSdk.DynamoDB-v5.0.0","title":"LaunchDarkly.ServerSdk.DynamoDB: v5.0.0","summary":"## [5.0.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.DynamoDB-v4.0.2...LaunchDarkly.ServerSdk.DynamoDB-v5.0.0) (2025-...","content":"## [5.0.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.DynamoDB-v4.0.2...LaunchDarkly.ServerSdk.DynamoDB-v5.0.0) (2025-10-22)\n\n\n### ⚠ BREAKING CHANGES\n\n* Drop support for AWSSDK.DynamoDB v3 ([#173](https://github.com/launchdarkly/dotnet-core/issues/173))\n\n### Features\n\n* Support AWSSDK.DynamoDB v4 ([#173](https://github.com/launchdarkly/dotnet-core/issues/173)) ([05c16c1](https://github.com/launchdarkly/dotnet-core/commit/05c16c16865f6978df2cd6eb9b057bdbbacb4aad))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2025-10-22T14:09:17.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk.DynamoDB-v5.0.0","media":[]},{"id":"rel_gLkFpPOUR9hXCKvtRISS_","version":"LaunchDarkly.ServerSdk.DynamoDB-v4.0.2","title":"LaunchDarkly.ServerSdk.DynamoDB: v4.0.2","summary":"## [4.0.2](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.DynamoDB-v4.0.1...LaunchDarkly.ServerSdk.DynamoDB-v4.0.2) (2025-...","content":"## [4.0.2](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.DynamoDB-v4.0.1...LaunchDarkly.ServerSdk.DynamoDB-v4.0.2) (2025-10-21)\n\n\n### Bug Fixes\n\n* Fix package deployment process ([#174](https://github.com/launchdarkly/dotnet-core/issues/174)) ([3b2ce8b](https://github.com/launchdarkly/dotnet-core/commit/3b2ce8b88610f12b94d79c815eeba6a49f9cbeed))\n* Prevent using incompatible AWS version ([#171](https://github.com/launchdarkly/dotnet-core/issues/171)) ([5496a64](https://github.com/launchdarkly/dotnet-core/commit/5496a64bedc2bc25fdf8ca9757345de25b67f38f))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2025-10-22T00:06:23.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk.DynamoDB-v4.0.2","media":[]},{"id":"rel_qefXOsYKQ-YPLfiigJKIs","version":"LaunchDarkly.ServerSdk.DynamoDb-v4.0.1","title":"LaunchDarkly.ServerSdk.DynamoDb: v4.0.1","summary":"## [4.0.1](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.DynamoDb-v4.0.0...LaunchDarkly.ServerSdk.DynamoDb-v4.0.1) (2025-...","content":"## [4.0.1](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.DynamoDb-v4.0.0...LaunchDarkly.ServerSdk.DynamoDb-v4.0.1) (2025-10-21)\n\n\n### Bug Fixes\n\n* Prevent using incompatible AWS version ([#171](https://github.com/launchdarkly/dotnet-core/issues/171)) ([5496a64](https://github.com/launchdarkly/dotnet-core/commit/5496a64bedc2bc25fdf8ca9757345de25b67f38f))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2025-10-21T20:35:38.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk.DynamoDb-v4.0.1","media":[]},{"id":"rel_3tvLlIdPP2t89plf8D-AY","version":"LaunchDarkly.ServerSdk.Telemetry-v1.4.0","title":"LaunchDarkly.ServerSdk.Telemetry: v1.4.0","summary":"## [1.4.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.Telemetry-v1.3.0...LaunchDarkly.ServerSdk.Telemetry-v1.4.0) (202...","content":"## [1.4.0](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk.Telemetry-v1.3.0...LaunchDarkly.ServerSdk.Telemetry-v1.4.0) (2025-10-06)\n\n\n### Features\n\n* add all available attributes to a span ([#167](https://github.com/launchdarkly/dotnet-core/issues/167)) ([7350aac](https://github.com/launchdarkly/dotnet-core/commit/7350aac8ef35630b0273d3b12d34e77fa682ff9c))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2025-10-07T15:47:28.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk.Telemetry-v1.4.0","media":[]},{"id":"rel_kMRz8tjNpdz3iRuUc9WwR","version":"LaunchDarkly.ClientSdk-v5.5.4","title":"LaunchDarkly.ClientSdk: v5.5.4","summary":"## [5.5.4](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.5.3...LaunchDarkly.ClientSdk-v5.5.4) (2025-09-29)\n\n\n### Bug F...","content":"## [5.5.4](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.5.3...LaunchDarkly.ClientSdk-v5.5.4) (2025-09-29)\n\n\n### Bug Fixes\n\n* Validate string format of SDK key ([#162](https://github.com/launchdarkly/dotnet-core/issues/162)) ([27a26fb](https://github.com/launchdarkly/dotnet-core/commit/27a26fb9e226f7e5208928d9df43fbd6d5a68037))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2025-09-29T16:28:26.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ClientSdk-v5.5.4","media":[]},{"id":"rel_1ac5c6nrqt_aXTvznmlew","version":"LaunchDarkly.ServerSdk-v8.10.3","title":"LaunchDarkly.ServerSdk: v8.10.3","summary":"## [8.10.3](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.10.2...LaunchDarkly.ServerSdk-v8.10.3) (2025-09-29)\n\n\n### Bu...","content":"## [8.10.3](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ServerSdk-v8.10.2...LaunchDarkly.ServerSdk-v8.10.3) (2025-09-29)\n\n\n### Bug Fixes\n\n* Validate string format of SDK key ([#162](https://github.com/launchdarkly/dotnet-core/issues/162)) ([27a26fb](https://github.com/launchdarkly/dotnet-core/commit/27a26fb9e226f7e5208928d9df43fbd6d5a68037))","publishedAt":"2025-09-29T15:50:42.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ServerSdk-v8.10.3","media":[]},{"id":"rel_2LhkqNLVyoN71X7lZl4Ha","version":"LaunchDarkly.CommonSdk-v7.1.1","title":"LaunchDarkly.CommonSdk: v7.1.1","summary":"## [7.1.1](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.CommonSdk-v7.1.0...LaunchDarkly.CommonSdk-v7.1.1) (2025-09-26)\n\n\n### Bug F...","content":"## [7.1.1](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.CommonSdk-v7.1.0...LaunchDarkly.CommonSdk-v7.1.1) (2025-09-26)\n\n\n### Bug Fixes\n\n* Add validation format check for SDK key ([#163](https://github.com/launchdarkly/dotnet-core/issues/163)) ([02c6ed7](https://github.com/launchdarkly/dotnet-core/commit/02c6ed793f1984cce878f0c53667476533acb896))","publishedAt":"2025-09-26T22:05:04.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.CommonSdk-v7.1.1","media":[]},{"id":"rel_HYMEV5Xx_M1Sc0CkBCwTi","version":"LaunchDarkly.ClientSdk-v5.5.3","title":"LaunchDarkly.ClientSdk: v5.5.3","summary":"## [5.5.3](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.5.2...LaunchDarkly.ClientSdk-v5.5.3) (2025-09-25)\n\n\n### Bug F...","content":"## [5.5.3](https://github.com/launchdarkly/dotnet-core/compare/LaunchDarkly.ClientSdk-v5.5.2...LaunchDarkly.ClientSdk-v5.5.3) (2025-09-25)\n\n\n### Bug Fixes\n\n* Update EventSource to 5.2.1 ([#159](https://github.com/launchdarkly/dotnet-core/issues/159)) ([35d08d7](https://github.com/launchdarkly/dotnet-core/commit/35d08d7160512850c6d3a81e4fc312696cbb808e))","publishedAt":"2025-09-25T17:44:38.000Z","url":"https://github.com/launchdarkly/dotnet-core/releases/tag/LaunchDarkly.ClientSdk-v5.5.3","media":[]}],"pagination":{"page":1,"pageSize":20,"totalPages":3,"totalItems":56},"summaries":{"rolling":{"windowDays":90,"summary":"The .NET SDK suite pushed toward production readiness for ahead-of-time compilation and expanded extensibility in the client SDK. CommonSdk 7.2.0 shipped AOT-safe code, unblocking deployment scenarios that require compiled native binaries. The Client SDK added plugin support and identify hooks to customize behavior at key integration points, while the Server SDK stabilized context matching logic and rolled out experimental support for the next-generation flag delivery protocol (FDv2 data system).","releaseCount":9,"generatedAt":"2026-04-11T13:43:59.693Z"},"monthly":[{"year":2026,"month":3,"summary":"The .NET SDK expanded its extensibility surface. Client SDK shipped plugin support, allowing developers to customize SDK behavior, followed by identify hooks that enable interception of user identification. The AI SDK made defaultValue optional with a sensible disabled default, simplifying integration for feature flag evaluation.","releaseCount":3,"generatedAt":"2026-04-11T13:43:45.371Z"}]}}