Go SDK
Go-SDK - 2.6.0
Holdout Targeted Delivery Exclusion Holdouts can now be configured to exclude Targeted Delivery rules, so users held out of experiments still receive their Targeted Delivery experiences. This gives you a cleaner measure of experiment impact without holding users back from ongoing rollouts.
Go-SDK - 2.5.0
July 14, 2026 \[FSSDK-12369] Add local holdouts support to Go SDK by @Mat001 in https //github. com/optimizely/go-sdk/pull/451 https //github.
Go-SDK - 2.4.0
May 4, 2026 Feature Rollout Added support for Feature Rollouts, a new experiment type combining Targeted Delivery simplicity with A/B test measurement capabilities. Feature Rollouts enable progressive rollouts with full impact analytics, metric tracking, and confidence intervals.
Go-SDK - 2.3.1
January 22, 2026 \#whats-changed \[FSSDK-12037] Exclude CMAB experiment from UPS by @Mat001 in https //github. com/optimizely/go-sdk/pull/433 https //github.
Go-SDK - 2.3.0
December 12, 2025 \#new-features Holdout Support Added holdouts support with datafile parsing and full decision logic for excluding users from experiments ( #422 https //github. com/optimizely/go-sdk/pull/422 ) Holdout Impression Events Added impression event handling for holdouts with proper rule type "holdout" metadata ( #428 https //github.
Go-SDK - 2.2.1
\#221---october-24-2025 \#bug-fixes CMAB Cache Size Alignment Increased CMAB default cache size from 1000 to 10000 to align with ODP segments cache size for consistency ( #425 https //github. com/optimizely/go-sdk/pull/425 ) Bucketing Precision Fixed float32 precision error that caused incorrect bucketing for specific users ( #423 https //github.
Go-SDK - 2.2.0
\#220---september-30-2025 \#new-features CMAB (Contextual Multi-Armed Bandit) Support Added support for CMAB experiments with new configuration options and cache control ( #399 https //github. com/optimizely/go-sdk/pull/399 , #401 https //github.
Go-SDK - 2.1.0
\#210---november-8-2024 \#enhancements Batch Processing for User Profile Service (UPS) Added support for batch processing in decideAll and decideForKeys , enabling more efficient handling of multiple decisions in the User Profile Service. ( #394 https //github.
Go-SDK - 1.8.5
Fixed a bug in the HTTP Requester logging. Now correct error message is logged.
Go-SDK - 1.8.4
We updated our README. md and other non-functional code to reflect that this SDK supports both Optimizely Feature Experimentation and Optimizely Full Stack.
Go-SDK - 1.8.3
Add option to set custom http. Client on HTTPRequester.
Go-SDK - 1.8.2
Add additional validation for numeric attribute types when building an event object. ( #341 https //github.
Go-SDK - 1.8.1
Add validation for user attribute types when building an event object. Only allow primitive types ( #339 https //github.
Go-SDK - 1.8.0
Add a set of new APIs for overriding and managing user-level flag, experiment and delivery rule decisions. These methods can be used for QA and automated testing purposes.
Go-SDK - 1.7.0
Add new public properties to OptimizelyConfig . ( #322 https //github.
Go-SDK - 1.6.1
Fix issues for decision variables and reasons ( #309 https //github. com/optimizely/go-sdk/pull/309 ).
Go-SDK - 1.6.0
\> Introducing a new primary interface for retrieving feature flag status, configuration and associated experiment decisions for users ( #304 https //github. com/optimizely/go-sdk/pull/304 , #303 https //github.
Go-SDK - 1.5.1
Add "enabled" field to decision metadata structure ( #301 https //github. com/optimizely/go-sdk/pull/301 ) https //github.
Go-SDK - 1.5.0
Correct logic for rollout service ( #296 https //github. com/optimizely/go-sdk/pull/296 ) Add support for sending flag decisions along with decision metadata ( #292 https //github.
Go-SDK - 1.4.0
Add MatchRegistry for custom match implementations. ( #286 https //github.
Go-SDK - 1.3.0
Add support for JSON feature variables ( #250 https //github. com/optimizely/go-sdk/pull/250 , #251 https //github.
Go-SDK - 1.3.0-beta3
Provide syncronization for Notification Center Cache ( #273 https //github. com/optimizely/go-sdk/pull/273 ) https //github.
Go-SDK - 1.3.0-beta2
Bring back old constructors for static manager ( #271 https //github. com/optimizely/go-sdk/pull/271 ) https //github.
Go-SDK - 1.3.0-beta1
Add support for JSON feature variables ( #250 https //github. com/optimizely/go-sdk/pull/250 , #251 https //github.
Go-SDK - 1.2.0
feat support for multi-rule rollouts #247 https //github. com/optimizely/go-sdk/pull/247 https //github.
Go-SDK - 1.1.3
logger not set for httpDispatcher #254 https //github. com/optimizely/go-sdk/pull/254 https //github.
Go-SDK - 1.1.2
refact Update logging field keys to be consumable in structured logs #246 https //github. com/optimizely/go-sdk/pull/246 https //github.
Go-SDK - 1.1.1
feat Logging sdk key masked value with every log message. The masking is by default and can be disabled or set to a custom mapping.
Go-SDK - 1.1.0
feat Allow ClientName and Version to be set at compile time. #227 https //github.
Go-SDK - 1.0.0
This is the General Availability release of the Go SDK. feat(onTrack) Added onTrack callback.
Go-SDK - v1.0.0-rc1
feat(PollingConfigManager) Implemented caching headers in PollingConfigManager. #189 https //github.
Go-SDK - 1.0.0-beta7
feat Method for removing forced variations #176 https //github. com/optimizely/go-sdk/pull/176 fix Update built-in map-based ExperimentOverrideStore implementation to be concurrently usable #171 https //github.
Go-SDK - 1.0.0-beta6
Experiment override service - implement groups #164 https //github. com/optimizely/go-sdk/pull/164 Add User profile service #163 https //github.
Go-SDK - v1.0.0-beta5
fix(ExperimentWhitelistService) Fix finding variation by key #155 https //github. com/optimizely/go-sdk/pull/155 https //github.
Go-SDK - v1.0.0-beta4
feat(logger) Expand LogConsumer interface to have explicit field mapping. #147 https //github.
Go-SDK - v1.0.0-beta3
Refactored EventProcessor and ConfigManager components to no longer require an ExecutionContext be passed in during construction. It will be injected into them by the client factory.
Go-SDK - v1.0.0-beta2
Introduces the Activate and GetVariation APIs for running A/B tests. Makes the top-level client components public DecisionService, ConfigManager, EventProcessor .
Go-SDK - 1.0.0-beta1
Added decision listeners and project config update listeners. Added optional configuration parameters to NewProcessor.
Go-SDK - v0.2.0
This release of the SDK introduces Feature Management capabilities for running both Feature Rollouts as well as Feature Tests using Optimizely Feature Management. Introduces feature variable getters via GetFeatureVariable for parameterizing your feature tests.
Go-SDK - 0.1.0
This is the initial release of the SDK, which includes support for running Feature Rollouts using Optimizely Feature Management. Introduces the IsFeatureEnabled and GetFeatureEnabled APIs for determining whether the feature is enabled for a user or not.