What Is a Toggle?
In general computing a toggle is an option item that is either on or off for a particular preference. Toggle switches are used in almost every piece of software to allow users to switch between one setting or function and another.
Feature Toggles are often categorized into three types: Release Toggles, Experiment Toggles and Permissioning Toggles.
Release Toggles
Unlike other categories of feature flags Release Toggles are transitionary and will only stick around for a short time. They may be a feature in a new release or a feature that is only available to selected users.
Experiment Toggles
This type of toggle is generally used for multivariate testing and A/B testing. In an experiment toggle each user is placed into a cohort, and the Toggle Router will consistently send that user down a single codepath or the other based on their cohort status.
Permissioning Toggles
This is a very dynamic toggle category and can be used for managing a feature that is only available to premium users. In many ways a Permissioning Toggle is similar to a Canary Release but it will typically be exposed to a much wider set of users and can be quite long-lived.
Static Configuration is a good way to manage these toggles as it ensures consistency across a fleet of servers and provides the option to re-configure toggles in the runtime. However, there are some cases where static configuration isn’t a practical solution. In those cases, some organizations choose to move toggle configuration into a centralized store and provide an admin interface that allows system operators, testers and product managers to configure these flags.