From 7535c88cbf44e32246b1781869470d1ce4a05f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Fri, 7 Aug 2020 11:13:17 +0200 Subject: [PATCH] fix: add user documentation for feature toggle types --- docs/feature-toggle-types.md | 26 ++++++++++++++++++++++++++ website/i18n/en.json | 5 ++++- website/sidebars.json | 1 + 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 docs/feature-toggle-types.md diff --git a/docs/feature-toggle-types.md b/docs/feature-toggle-types.md new file mode 100644 index 0000000000..4cc12cfd03 --- /dev/null +++ b/docs/feature-toggle-types.md @@ -0,0 +1,26 @@ +--- +id: feature_toggle_types +title: Feature Toggle Types +--- + +Starting with version `3.5.0` Unleash introduces the concept of feature toggle types. The toggle types are heavily inspired by [Pete Hodgson's article on feature toggles](https://martinfowler.com/articles/feature-toggles.html). + +The idea is to make it easier for teams to manage their feature toggles, if they can more clearly classify them. The classification will also help us understand the [expected feature toggle lifetime](https://www.unleash-hosted.com/articles/feature-toggle-life-time-best-practices). Some feature toggles are meant to live for a few weeks, while we work on the new functionality, while others are of a more permanent nature. + +Feature toggle types currently supported by Unleash: + +- **Release** - Used to enable trunk-based development for teams practicing Continuous Delivery. _Expected lifetime 40 days_ +- **Experiment** - Used to perform multivariate or A/B testing. _Expected lifetime 40 days_ +- **Operational** - Used to control operational aspects of the system's behavior. _Expected lifetime 7 days_ +- **Kill switch** - Used to to gracefully degrade system functionality. _(permanent)_ +- **Permission** - Used to change the features or product experience that certain users receive. _(permanent)_ + +### Deprecate a feature toggle + +Feature toggles can now also be marked as `stale` (deprecated). This allows us to clearly signal that we should stop using the feature toggle in our applications. + +The `stale` property can utilized to help us manage "feature toggle debt" in various ways: + +- Inform the developer working locally when we detect usage of a stale feature toggle. +- Use it to break the build if the code contains stale feature toggles. +- Send automatic PR to remove usage of completed toggles. diff --git a/website/i18n/en.json b/website/i18n/en.json index 74bec0bb3b..f863e4bb7c 100644 --- a/website/i18n/en.json +++ b/website/i18n/en.json @@ -9,7 +9,7 @@ "title": "Activation Strategies" }, "api/admin/events": { - "title": "/api/admin/events" + "title": "/api/admin/feature-types" }, "api/admin/features": { "title": "/api/admin/features" @@ -59,6 +59,9 @@ "developer_guide": { "title": "Developer guide" }, + "feature_toggle_types": { + "title": "Feature Toggle Types" + }, "getting_started": { "title": "Getting Started" }, diff --git a/website/sidebars.json b/website/sidebars.json index 5a1ae5416f..725dfb2859 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -3,6 +3,7 @@ "User Documentation": [ "getting_started", "client_sdk", + "feature_toggle_types", "securing_unleash", "unleash_context", "activation_strategy",