---
title: Java-SDK - 4.3.0
slug: feature-experimentation/release-notes/java-sdk-4-3-0
docTags: 
createdAt: 2026-07-20T15:45:21.782Z
---

## \[4.3.0]

[#430](docId\:JeRxBbN2FmUqIME7Qi0zl)

Dec 10th, 2025

### New Features

[#new-features](docId\:JeRxBbN2FmUqIME7Qi0zl)

- **CMAB (Contextual Multi-Armed Bandit) Support**: Added support for CMAB experiments with new configuration options and cache control ([#577](https://github.com/optimizely/java-sdk/pull/577), [#578](https://github.com/optimizely/java-sdk/pull/578), [#579](https://github.com/optimizely/java-sdk/pull/579), [#582](https://github.com/optimizely/java-sdk/pull/582), [#583](https://github.com/optimizely/java-sdk/pull/583), [#584](https://github.com/optimizely/java-sdk/pull/584), [#585](https://github.com/optimizely/java-sdk/pull/585), [#590](https://github.com/optimizely/java-sdk/pull/590), [#593](https://github.com/optimizely/java-sdk/pull/593))
- **Add Holdouts Feature**: Add Holdout support for feature experimentation ([#572](https://github.com/optimizely/java-sdk/pull/572), [#576](https://github.com/optimizely/java-sdk/pull/576))
- **Multi-Region Support for Data Hosting**: Added SDK support for multi-region data hosting ([#573](https://github.com/optimizely/java-sdk/pull/573))

### API Changes

[#api-changes](docId\:JeRxBbN2FmUqIME7Qi0zl)

- **OptimizelyUserContext**: New asynchronous decision-making methods
  - `decideAsync()`: Asynchronous method to make a decision for a single flag with CMAB support
  - `decideAllAsync()`: Asynchronous method to make decisions for all flags
  - `decideForKeysAsync()`: Asynchronous method to make decisions for multiple flag keys
- **Client Initialization**:
  - `CmabClientConfig` can be injected when initializing the client for custom CMAB configuration
  - `CmabService` can be provided to `OptimizelyFactory` for custom CMAB service implementation
- **New Decide Options**: Added cache control options for CMAB
  - `IGNORE_CMAB_CACHE`: Skip reading from CMAB cache
  - `RESET_CMAB_CACHE`: Clear and reset CMAB cache before decision
  - `INVALIDATE_USER_CMAB_CACHE`: Invalidate cache entries for specific user

[https://github.com/optimizely/java-sdk/releases/tag/4.3.0](https://github.com/optimizely/java-sdk/releases/tag/4.3.0)
