Skip to content

Feature Toggles

At Statista we are using Unleash (SAAS Version) as feature toggle system. In order to enable all teams to work on it without creating chaos we agreed on the following conventions Its available for 4.0 Apps and the Monolith.

The setup in Unleash we have in mind is a Project for each slice. This way we can easily manage the feature toggles and the variants for each slice. The Tokens must be the globally available Unleash tokens. This allows us to use and access toggles for all projects. Since toggles are globally available, we can use them in any slice. By following this pattern we can easily enable or disable features for all slices from a central place.

Ask the architects on how to setup and configure Unleash for your slice!

  • Project - A project in Unleash is either a Team or an application.
    • Team - Please name the Project based on the naming of the GitHub Organisation. This case is best suited when a team want to use toggle over several applications inside a team domain concern
    • Application - Please name the Project based on the naming of the application GitHub repository. This is best suited when people from several teams working on the same application

Environment

Environments are available for all projects. It is not possible an environment only for a project, but it is possible to deactivate an environment for a project. In order to keep the number of environments manageable, we decided to go for:

  • dev - dev environment
  • stage - staging environment
  • prod - production environment
  • other - for personal or experimental environments

Users management

we will connect to Azure as SSO for the login in order to ensure security and employee on and off boarding. We have 70 licenses in total, which should be enough for engineers and some Product Owner. Details still needs to be clarified.

API token

there are 2 ways to define API tokens

  • inside of project - this should be preferred for teams or specific projects (those are not available to other projects)
  • globally - this fits best if the scope of a Token in a project does not satisfy the requirements

Change requests

we do not enforce the usage of Change requests for now

Segments

Segments should be defined inside of projects where possible