# Overview

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:

  1. Create your feature toggle and define its default values. See How to create a feature toggle
  2. Wrap your code within the feature toggle. See How to use a feature toggle.
  3. 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
  4. Archive and delete short-term feature toggles once the rollout phase has completed. See How to archive feature toggles