Feature Toggles (opens new window) (often also referred to as Feature Flags) are a powerful technique, allowing teams to modify system behavior without changing code.
Feature toggles allow deploying code to production in a deactivated state and on-demand activate it gradually. This way, the impact of new features or core changes can be scoped and not affect the whole Marfeel Platform. It also provides a fast way of enabling or disabling a feature in a matter of seconds without the hassle of deploying or reverting code in production.
Feature toggles can be categorized depending on how long the feature toggle will live.
# Short-term feature toggles
A short-term feature toggle has a limited lifespan and will be removed once it has fulfilled its business purpose. Types of short-term flags include:
Release toggles: Slowly exposing a feature to some tenants with testing purposes in mind. This is used by product teams to control how a feature is adopted progressively before rolling it out.
Experimentation toggles or A/B testing: Coming soon. Release toggles are Boolean flags that can be enabled or disable. With multivariate flag types, A/B testing will be supported.
# Permanent feature toggles
A permanent feature toggle is designed to provide control for an extended time after the release of a feature. Types of permanent feature toggles include:
Permissioning: Give tenants access to certain features based on their subscription level.
Circuit breakers: Having the ability to quickly disable or enable a feature when a problem arises or to permanently disable a functionality.
# Implementation Techniques
All new developments at Marfeel are developed behind a Feature Toggle. The lifecycle of a feature toggle can be summarized as:
- Create your feature toggle and define its default values. See How to create a feature toggle
- Wrap your code within the feature toggle. See How to use a feature toggle.
- Enable or disable the feature toggle for a certain site or user. See How to enable a feature toggle or How to enable a feature toggle via code
- Archive and delete short-term feature toggles once the rollout phase has completed. See How to archive feature toggles