---
title: Key concepts and differences in Optimizely Feature Experimentation
slug: feature-experimentation/docs/key-concepts-and-differences-in-full-stack-and-feature-experimentation
docTags: 
createdAt: 2026-08-05T20:39:50.000Z
---

Optimizely Feature Experimentation is a completely redesigned Full Stack Experimentation experience. Optimizely believes this redesigned experience will benefit you and your teams. Several key differences between Full Stack Experimentation and Feature Experimentation are important when migrating to the latest version.

## Key concept changes

The following table explains the overall concepts in Feature Experimentation.

| Old Full Stack concept | New Feature Experimentation concept                                                | Feature Experimentation information                                                                                                                                                                                                          |
| ---------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Feature                | Flag                                                                               | A place in code where a decision is made.                                                                                                                                                                                                    |
| Feature variable       | - Flag variable<br />- Flag variation                                              | A flag configuration, including feature variations and on or off state, is delivered to the end-user.                                                                                                                                        |
| Rollout                | - Rule<br />- Delivery<br />- Flag delivery<br />- Delivery Rule<br />- Percentage | Conditions for what to deliver and why.                                                                                                                                                                                                      |
| N/A                    | Ruleset                                                                            | The full set of rules for a flag within an environment.                                                                                                                                                                                      |
| Feature test           | - A/B Test<br />- Experiment rule                                                  | A standalone test to answer a specific question. For example, which of two (or more) variations performs best?                                                                                                                               |
| Activate an experiment | Make a flag decision (for a flag rule)                                             | Use the \[Decide methods]\(https\://docs.developers.optimizely.com/feature-experimentation/docs/updated-api-methods) to return flag decisions for a user. The flag decision includes the flag enabled or disabled status and flag variation. |
| Whitelist              | Allowlist                                                                          | Functionality remains the same, showing a specific variation to up to 10 users that you have selected. The name was only updated for inclusivity.                                                                                            |

## Flags

*Flags* are the primary component of the Feature Experimentation experience. They represent any place in your code base where you use Optimizely to control how an experience is delivered. They can range from a simple on-off toggle to a complex set of instructions about handling each segment of your user base.

- A *rule* is the unit of targeting and allocation logic within a flag. Rules describe what variation the flag should deliver to a given user.
- A *ruleset* is the collection of prioritized rules associated with a flag and a specific environment at a given time.
- A *variation* consists of an on-off status for the flag.
- *Default variables* can be associated with a flag and reused and referenced across your A/B test and targeted delivery to configure your flag with Optimizely remotely.

## SDK methods

Feature Experimentation introduces [new SDK methods to retrieve decisions for your Flags](docId\:Mq8a-0tyTzM32HEt362lj). These SDK methods are a non-breaking change that extends and builds on the existing functionality.

You should adopt the `Decide`, `Decide All`, and `Track Event` methods because they are a more flexible and easier-to-use replacement where you currently use `isFeatureEnabled`, `getFeatureVariable`, `getAllFeatures`, or `Track` calls within your implementation.

Refer to your SDK language's documentation for information on updating to the methods:

- [Android SDK](docId:2gvjrhd7OuBcm3Z8UGhrB)
- [C# SDK](docId\:Mipo1fTiMqiZj6DvhSWIE)
- [Go SDK](docId\:QO7YffncmeJVQvNgoux9a)
- [Java SDK](docId\:j3lVXMLILkvIbjS2fjOBH)
- [JavaScript (Browser) SDK](docId\:YUTay4Kym7NHHGyjVjYdB)
- [JavaScript (Node) SDK](docId\:P5SdFKZkiOSbfm7cuUhuv)
- [PHP SDK](docId:-X9nQcRUl4L7UYACLgvsx)
- [Python SDK](docId:3cl8EUhLQgYJQ1ZPzxPmx)
- [React SDK](docId:-AC32XWPDktAMgxYjxTye)
- [React Native SDK](docId:63_5Z8m6gc_CV0tHmG1ih)
- [Ruby SDK](docId\:yXW8HDEnXcn3nkBiYI5ea)
- [Swift SDK](docId\:tdl_-8wL8sjKGvc3RHK3x)
