---
name: Java SDK
slug: launchdarkly-java-sdk
type: github
source_url: https://github.com/launchdarkly/java-core
organization: LaunchDarkly
organization_slug: launchdarkly
total_releases: 31
latest_version: launchdarkly-java-server-sdk-7.13.2
latest_date: 2026-03-31
last_updated: 2026-04-19
tracking_since: 2024-05-23
canonical: https://releases.sh/launchdarkly/launchdarkly-java-sdk
organization_url: https://releases.sh/launchdarkly
---

<Summary type="rolling" window-days="90" release-count="15">
The SDK pushed forward on next-generation flag delivery infrastructure while refining core performance and diagnostics. Version 7.11.0 shipped experimental support for FDv2 (data-saving mode), a second-generation protocol accessible via `Components.dataSystem()` that offers more flexible initializer and synchronizer configuration. Subsequent releases commonized FDv2-related types across the internal and common modules, added per-context summary event support, and shipped stream initialization diagnostics for the new protocol. On the maintenance side, 7.13.1 optimized `EvaluatorBucketing` performance and 7.13.2 improved HTTP request debug logging. The Redis store module gained username/password authentication for Redis 6.0+.
</Summary>

<Summary type="monthly" period="March 2026" release-count="3">
The Java SDK shipped three releases focused on internal improvements and standardization. Version 7.13.0 commonized FDv2-related types across the codebase, followed by a performance pass that optimized the EvaluatorBucketing logic in 7.13.1, and finally 7.13.2 improved debug logging for HTTP requests to aid in troubleshooting.
</Summary>

<Release version="launchdarkly-java-server-sdk-7.13.2" date="March 31, 2026" published="2026-03-31T20:12:26.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-server-sdk-7.13.2">
## launchdarkly-java-server-sdk: v7.13.2

## [7.13.2](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-server-sdk-7.13.1...launchdarkly-java-server-sdk-7.13.2) (2026-03-31)


### Bug Fixes

* improves debug logging of HTTP requests ([#150](https://github.com/launchdarkly/java-core/issues/150)) ([6bab9f3](https://github.com/launchdarkly/java-core/commit/6bab9f373cd2014db12cc5c1cfa0f23db84d4060))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-server-sdk-7.13.1" date="March 20, 2026" published="2026-03-20T14:16:23.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-server-sdk-7.13.1">
## launchdarkly-java-server-sdk: v7.13.1

## [7.13.1](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-server-sdk-7.13.0...launchdarkly-java-server-sdk-7.13.1) (2026-03-19)


### Performance Improvements

* optimize EvaluatorBucketing ([#88](https://github.com/launchdarkly/java-core/issues/88)) ([e525ef0](https://github.com/launchdarkly/java-core/commit/e525ef011d12ca8755c3150c64b22bb0d0202d26))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-server-sdk-7.13.0" date="March 12, 2026" published="2026-03-12T15:34:55.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-server-sdk-7.13.0">
## launchdarkly-java-server-sdk: v7.13.0

## [7.13.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-server-sdk-7.12.0...launchdarkly-java-server-sdk-7.13.0) (2026-02-27)


### Features

* commonizes several FDv2 related types ([f1f42f8](https://github.com/launchdarkly/java-core/commit/f1f42f82227f4900fb691cb2b7e6f56e4931789d))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-sdk-internal-1.9.0" date="February 27, 2026" published="2026-02-27T13:57:29.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-internal-1.9.0">
## launchdarkly-java-sdk-internal: v1.9.0

## [1.9.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-internal-1.8.0...launchdarkly-java-sdk-internal-1.9.0) (2026-02-26)


### Features

* commonizes several FDv2 related types ([a14beb9](https://github.com/launchdarkly/java-core/commit/a14beb987e3c9f049c6f81c9771bddce7ba7591d))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-sdk-common-2.4.0" date="February 26, 2026" published="2026-02-26T21:32:20.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-common-2.4.0">
## launchdarkly-java-sdk-common: v2.4.0

## [2.4.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-common-2.3.0...launchdarkly-java-sdk-common-2.4.0) (2026-02-26)


### Features

* commonizes several FDv2 related types ([ef1e204](https://github.com/launchdarkly/java-core/commit/ef1e204b056ee6ad2a7c12e850dbb04a769a6104))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-sdk-internal-1.8.0" date="February 12, 2026" published="2026-02-12T22:08:12.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-internal-1.8.0">
## launchdarkly-java-sdk-internal: v1.8.0

## [1.8.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-internal-1.7.0...launchdarkly-java-sdk-internal-1.8.0) (2026-02-12)


### Features

* Add optional support for per-context summary events. ([#135](https://github.com/launchdarkly/java-core/issues/135)) ([3913d6f](https://github.com/launchdarkly/java-core/commit/3913d6f905b53c5f81bc7d5d044f332343b07182))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-server-sdk-7.12.0" date="February 12, 2026" published="2026-02-12T21:14:37.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-server-sdk-7.12.0">
## launchdarkly-java-server-sdk: v7.12.0

## [7.12.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-server-sdk-7.11.0...launchdarkly-java-server-sdk-7.12.0) (2026-02-12)


### Features

* Support stream init diagnostics events for FDv2. ([#133](https://github.com/launchdarkly/java-core/issues/133)) ([cb01449](https://github.com/launchdarkly/java-core/commit/cb014492a210cde548bacd3e41ab505ea08e0b1a))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-server-sdk-7.11.0" date="February 4, 2026" published="2026-02-04T22:05:29.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-server-sdk-7.11.0">
## launchdarkly-java-server-sdk: v7.11.0

## [7.11.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-server-sdk-7.10.2...launchdarkly-java-server-sdk-7.11.0) (2026-02-04)


### Features

* **experimental:** Release EAP support for FDv2 data system. ([6d7000b](https://github.com/launchdarkly/java-core/commit/6d7000b38ec7faf0760184b546b1dd4896c42dc9))

### Data Saving Mode EAP

This release adds support for our second generation flag delivery protocol, also known as data-saving mode.

This SDK version uses the first generation flag delivery protocol unless you explicitly configure the new protocol.

Support for the new protocol is defined by a data system configuration. Setting a data system via `Components.dataSystem()` enables the new protocol.

The data system supports more flexible configuration for **initializers** (how the SDK gets an initial payload) and **synchronizers** (how it stays up to date).

## Configuration

Several predefined data system configurations are available depending on how you run the SDK.

### Default

This is the LaunchDarkly-recommended default. It uses a two-phase strategy for initialization and includes fallbacks for synchronization.

The SDK gets an initial payload with a single request to our polling endpoints, then keeps it up to date via streaming. If that initial request fails, the SDK can still initialize via streaming once it enters the synchronization phase. During synchronization, it can fall back to polling if streaming has problems.

```java
LDConfig config = new LDConfig.Builder()
    .dataSystem(Components.dataSystem().defaultMode())
    .build();
```

### Polling only or streaming only

You can configure the SDK to use only polling or only streaming. This is not the recommended mode, and fewer fallbacks are available.

Polling:

```java
LDConfig config = new LDConfig.Builder()
    .dataSystem(Components.dataSystem().polling())
    .build();
```

Streaming:

```java
LDConfig config = new LDConfig.Builder()
    .dataSystem(Components.dataSystem().streaming())
    .build();
```

In streaming-only mode, polling may still be used if we need to disable the second generation protocol. In that case the data system is told to fall back to our v1 protocol and uses polling to do so.

### With a persistent store

With a persistent store configured, the SDK uses the same initialization and synchronization strategy as the default mode, plus a persistent store.

If flags are evaluated before the SDK has finished initializing, cached values from the store can be used. After initialization, flags are kept in an in-memory cache and written to the store. Flags remain in memory after initialization, unlike the previous implementation which used a TTL per item.

When using a persistent store you need a persistence integration (for example the Redis store integration).

Using a Redis persistent store:

```java
import com.launchdarkly.sdk.server.integrations.Redis;

LDConfig config = new LDConfig.Builder()
    .dataSystem(Components.dataSystem()
        .persistentStore(Components.persistentDataStore(Redis.dataStore())))
    .build();
```

### Daemon mode

In daemon mode the SDK does not request a flag payload from LaunchDarkly. It relies on a persistent store that is populated by the Relay Proxy.

Configuration is read from the store on demand and cached in memory with a TTL. The TTL controls how fresh the data is for each item.

Using a Redis persistent store:

```java
import com.launchdarkly.sdk.server.integrations.Redis;

LDConfig config = new LDConfig.Builder()
    .dataSystem(Components.dataSystem()
        .daemon(Components.persistentDataStore(Redis.dataStore())))
    .build();
```

### Offline

The top-level `offline` configuration applies to the data system.

```java
LDConfig config = new LDConfig.Builder()
    .offline(true)
    .build();
```

If both `offline(true)` and a data system (e.g. `Components.dataSystem().defaultMode()`) are set, the data system's initializers and synchronizers are not used.

```java
LDConfig config = new LDConfig.Builder()
    .offline(true)
    .dataSystem(Components.dataSystem().defaultMode())
    .build();
```

### Custom Configuration                                                                             
                                                                                                      
 For advanced use cases, you can build a custom data acquisition strategy:                            
                                                                                                      
 ```java                                                                                              
 LDConfig config = new LDConfig.Builder()                                                             
     .dataSystem(Components.dataSystem().custom()                                                     
         .initializers(DataSystemComponents.pollingInitializer())                                     
         .synchronizers(                                                                              
             DataSystemComponents.streamingSynchronizer(),                                            
             DataSystemComponents.pollingSynchronizer()                                               
         )                                                                                            
         .fDv1FallbackSynchronizer(DataSystemComponents.fDv1Polling()))                               
     .build();                                                                                        
                                                                                                      
 LDClient client = new LDClient("your-sdk-key", config);                                              
 ```

The data system does not require `Components.externalUpdatesOnly()`. The equivalent with the data system is to not specify any initializers, synchronizers, or fallback synchronizer.

### Bug Fixes

* Fix an issue that would prevent using FileData with `autoReload(true)` for a file in the current working directory. ([b50f684](https://github.com/launchdarkly/java-core/commit/b50f6847696e7c0956276911556ac78613f9fb4e))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-sdk-common-2.3.0" date="February 3, 2026" published="2026-02-03T22:16:37.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-common-2.3.0">
## launchdarkly-java-sdk-common: v2.3.0

## [2.3.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-common-2.2.1...launchdarkly-java-sdk-common-2.3.0) (2026-02-03)


### Features

* Move iterable async queue to internal. ([#125](https://github.com/launchdarkly/java-core/issues/125)) ([971f4b3](https://github.com/launchdarkly/java-core/commit/971f4b357575405afe23cf3441f8835dea45a30e))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-sdk-internal-1.7.0" date="February 3, 2026" published="2026-02-03T22:00:28.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-internal-1.7.0">
## launchdarkly-java-sdk-internal: v1.7.0

## [1.7.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-internal-1.6.1...launchdarkly-java-sdk-internal-1.7.0) (2026-02-03)


### Features

* Move iterable async queue to internal. ([#125](https://github.com/launchdarkly/java-core/issues/125)) ([971f4b3](https://github.com/launchdarkly/java-core/commit/971f4b357575405afe23cf3441f8835dea45a30e))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-sdk-common-2.2.1" date="January 30, 2026" published="2026-01-30T22:13:52.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-common-2.2.1">
## launchdarkly-java-sdk-common: v2.2.1

## [2.2.1](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-common-2.2.0...launchdarkly-java-sdk-common-2.2.1) (2026-01-30)


### Bug Fixes

* Change IterableAsyncQueue to public access modifier ([#122](https://github.com/launchdarkly/java-core/issues/122)) ([88c4ae0](https://github.com/launchdarkly/java-core/commit/88c4ae00c258c3030bc8e6bf761f26d9ec857941))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-sdk-common-2.2.0" date="January 30, 2026" published="2026-01-30T17:24:25.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-common-2.2.0">
## launchdarkly-java-sdk-common: v2.2.0

## [2.2.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-common-2.1.2...launchdarkly-java-sdk-common-2.2.0) (2026-01-30)


### Features

* Add IterableAsyncQueue. ([1965b25](https://github.com/launchdarkly/java-core/commit/1965b257119c1d5ebc05102d960c2ce41bfee542))
* Update minimum Java version to 1.8. ([1965b25](https://github.com/launchdarkly/java-core/commit/1965b257119c1d5ebc05102d960c2ce41bfee542))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-server-sdk-redis-store-3.1.0" date="January 27, 2026" published="2026-01-27T21:20:58.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-server-sdk-redis-store-3.1.0">
## launchdarkly-java-server-sdk-redis-store: v3.1.0

## [3.1.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-server-sdk-redis-store-v3.0.1...launchdarkly-java-server-sdk-redis-store-3.1.0) (2026-01-27)


### Features

* **java-server-sdk-redis-store:** Add username/password authentication support for Redis 6.0+ ([#96](https://github.com/launchdarkly/java-core/issues/96)) ([75625f3](https://github.com/launchdarkly/java-core/commit/75625f3ec5fbe198db48ab6ea48a7628fa3b82df))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
</Release>

<Release version="launchdarkly-java-sdk-internal-1.6.1" date="January 14, 2026" published="2026-01-14T14:56:43.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-internal-1.6.1">
## launchdarkly-java-sdk-internal: v1.6.1

## [1.6.1](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-internal-1.6.0...launchdarkly-java-sdk-internal-1.6.1) (2026-01-13)


### Bug Fixes

* making Selector make public ([#102](https://github.com/launchdarkly/java-core/issues/102)) ([9f4f2ee](https://github.com/launchdarkly/java-core/commit/9f4f2ee89e7a8e8f168ceb7e8a7a4c8ced4f3901))
</Release>

<Release version="launchdarkly-java-sdk-internal-1.6.0" date="January 13, 2026" published="2026-01-13T19:25:43.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-internal-1.6.0">
## launchdarkly-java-sdk-internal: v1.6.0

## [1.6.0](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-internal-1.5.1...launchdarkly-java-sdk-internal-1.6.0) (2026-01-13)


### Features

* adds fdv2 payload parsing and protocol handling ([a1412c4](https://github.com/launchdarkly/java-core/commit/a1412c4f217c5c39a8667381ea51e1c758d7c548))
</Release>

<Release version="lib/java-server-sdk-otel-0.2.0" date="October 23, 2025" published="2025-10-23T00:15:54.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/lib/java-server-sdk-otel-0.2.0">
## lib/java-server-sdk-otel: v0.2.0

## [0.2.0](https://github.com/launchdarkly/java-core/compare/lib/java-server-sdk-otel-0.1.0...lib/java-server-sdk-otel-0.2.0) (2025-10-23)


### Features

* Update OpenTelemetry semantic conventions ([#89](https://github.com/launchdarkly/java-core/issues/89)) ([c67ce73](https://github.com/launchdarkly/java-core/commit/c67ce73428a14f990f76d8f243fa6460e8b16cfb))
</Release>

<Release version="test-helpers-2.1.0" date="October 22, 2025" published="2025-10-22T19:25:31.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/test-helpers-2.1.0">
## test-helpers: v2.1.0

## [2.1.0](https://github.com/launchdarkly/java-core/compare/test-helpers-2.0.2...test-helpers-2.1.0) (2025-10-22)


### Features

* Migrate java-test-helpers to java-core. ([9c1e9f9](https://github.com/launchdarkly/java-core/commit/9c1e9f9a9a2ac498ecf125b0e8d81f2736785dc2))
* Vendor nanohttpd to remove package dependency. ([9c1e9f9](https://github.com/launchdarkly/java-core/commit/9c1e9f9a9a2ac498ecf125b0e8d81f2736785dc2))
</Release>

<Release version="launchdarkly-java-server-sdk-7.10.2" date="August 26, 2025" published="2025-08-26T19:34:34.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-server-sdk-7.10.2">
## launchdarkly-java-server-sdk: v7.10.2

## [7.10.2](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-server-sdk-7.10.1...launchdarkly-java-server-sdk-7.10.2) (2025-08-26)


### Bug Fixes

* bumping Java Server internal version to incorporate various dependency bumps ([#87](https://github.com/launchdarkly/java-core/issues/87)) ([ae0fa11](https://github.com/launchdarkly/java-core/commit/ae0fa113e0c00e9198878d503fbe6d0bd6016bda))
* updating various dependencies to latest minor to incorporate fixes ([b4425d7](https://github.com/launchdarkly/java-core/commit/b4425d74cc5db3c2cba1768b95b1fb903e591684))
</Release>

<Release version="launchdarkly-java-sdk-internal-1.5.1" date="August 26, 2025" published="2025-08-26T17:52:31.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-internal-1.5.1">
## launchdarkly-java-sdk-internal: v1.5.1

## [1.5.1](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-internal-1.5.0...launchdarkly-java-sdk-internal-1.5.1) (2025-08-26)


### Bug Fixes

* updating various dependencies to latest minor to incorporate fixes ([b4425d7](https://github.com/launchdarkly/java-core/commit/b4425d74cc5db3c2cba1768b95b1fb903e591684))
</Release>

<Release version="launchdarkly-java-sdk-common-2.1.2" date="July 14, 2025" published="2025-07-14T14:52:08.000Z" url="https://github.com/launchdarkly/java-core/releases/tag/launchdarkly-java-sdk-common-2.1.2">
## launchdarkly-java-sdk-common: v2.1.2

## [2.1.2](https://github.com/launchdarkly/java-core/compare/launchdarkly-java-sdk-common-2.1.1...launchdarkly-java-sdk-common-2.1.2) (2025-07-14)


### Performance Improvements

* optimize copy on write attributes ([#74](https://github.com/launchdarkly/java-core/issues/74)) ([7e0a623](https://github.com/launchdarkly/java-core/commit/7e0a6239cc4ab674b18548dbcbbba9d3f99dd476))
</Release>

<Pagination page="1" total-pages="2" total-items="31" next="https://releases.sh/launchdarkly/launchdarkly-java-sdk.md?page=2" />
