A toggle is a switch that can be flipped on or off. Toggles are found in almost all aspects of computing when there is a choice between two outcomes. Toggles are used in everything from choosing a theme in an application to whether or not the user should be able to access the app’s settings.
Feature Toggles are often used in A/B tests to allow your engineering team to test new features with a small group of users. When the toggle is flipped ON your users will see the new feature being tested and when it is flipped OFF your users will see the original version of your application. This allows your engineering team to quickly catch bugs and monitor how a new feature performs in the hands of actual users before rolling it out to a larger group of users (ie Canary Release).
When using Feature Toggles for testing many teams choose to have their toggle configuration live side-by-side in source code with a corresponding commit ID. This allows them to track the state of a toggle over time as it moves between On and Off in production and gives them more flexibility when testing.
Toggle configuration can also be managed in a centralized database such as an existing application DB or even a dedicated toggle management service. This makes it easier for system operators, testers and product managers to manage and change toggle configuration. It is important to note however that these methods of managing toggles tend to be more dynamic than other categories of Feature Toggles such as Permissioning Toggles which can live for months or even years at a time.