Skip to content

Latest commit

 

History

History
24 lines (18 loc) · 3.57 KB

feature-flagging.md

File metadata and controls

24 lines (18 loc) · 3.57 KB

Feature Flagging

Feature flags are a software development technique that allows teams to enable, disable or change the behavior of certain features or code paths in a product or service, without modifying the source code.

OpenFeature Compliance

OpenFeature is an open standard that provides a vendor-agnostic, community-driven API for feature flagging. The flagd project is fully OpenFeature-compliant. In fact, flagd was initially conceived as a reference implementation for an OpenFeature backend, but has become a powerful tool in its own right. For this reason, you'll find flagd's concepts and terminology align with that of the OpenFeature project. Within the context of an OpenFeature-compliant feature flag solution, flagd artifacts and libraries comprise the flag management system and providers. These artifacts and libraries alone won't allow you to evaluate flags in your application - you'll also need the OpenFeature SDK for your language as well, which provides the evaluation API for application developers to use.

Supported Feature Flagging Use-Cases

Below is a non-exhaustive table of common feature flag use-cases, and how flagd supports them:

Use case flagd Feature
flag evaluation Returns the value of a particular feature flag, if the flag is enabled. Supports flags of various types including boolean, numeric, string, and JSON.
dynamic configuration Flag definitions from any sync source are monitored for changes, with some syncs supporting near real time updates.
dynamic (context-sensitive) evaluation flagd evaluations are context sensitive. Rules can use arbitrary context attributes as inputs for flag evaluation logic.
fractional evaluation / random assignment flagd's fractional custom operation supports pseudorandom assignment of flag values.
progressive roll-outs Progressive roll-outs of new features can be accomplished by leveraging the fractional custom operation as well as automation in your build pipeline, SCM, or infrastructure which updates the distribution over time.