Search…
Powered By GitBook
What Feature Flag Service/application Should We Use at Island.is?
    Status: accepted
    Deciders: developers and product owners of island.is
    Date: 2021-01-18
Technical Story: Select a feature flag solution that gives us the ability to easily use feature flags across our solutions.

Context and Problem Statement

We want to be able to roll out new features gradually, perform A/B testing and target individual groups with a new feature. Also, we want to be able to flip a switch to turn features on or off for everyone.

Decision Drivers

    Ease of setup
    Ease of maintenance
    Cost
    Developer experience
    Usability/UX
    Operational concerns
    Handling of PII

Considered Options

Decision Outcome

Chosen option: "ConfigCat", because:
    We can probably get away with using it for very low cost
    We can start using it almost right away with little configuration
If we decide later that we would like some of the features of LaunchDarkly, we want to be able to quickly swap. Thus, it is vital that we write some kind of service-agnostic wrapper.

Positive Consequences

    We can start using feature flags across our stack.

Negative Consequences

    Complexity of applications will increase

Pros and Cons of the Options

LaunchDarkly

    Good, because it has great UX
    Good, because it is the market leader and has a lot of customization options
    Good, because it allows developers to change flags in config files for local development
    Good, because it offers a relay proxy, minimizing outgoing connections
    Good, because setup is easy and maintenance is really low
    Good, because it has built-in support for multiple environments
    Good, because the provide private attributes to help with PII
    Good, because it has built-in datadog support
    Bad, because it's the most expensive of the considered options
    Bad, because it's hard to segment on PII

FlagSmith

    Good, because it's free if self-hosted
    Good, because it has built-in support for multiple environments
    Good, because we can segment on PII since we store all the data
    Good, because devs could run their own instance for local development
    Bad, because we'd need to maintain it ourselves
    Bad, because it has quite low community activity on GitHub

Optimizely Rollouts

    Good, because it's free for a low volume
    Good, because setup is easy and maintenance is really low
    Good, because it has built-in support for multiple environments
    Bad, because it's really hard to segment on PII
    Bad, because UI is hard to navigate
    Bad, because it doesn't seem to have a lot of open-source usage/examples
    Bad, because it only supports development environment inside the product
    Bad, because they don't have self-serve or an open price list
    Bad, because it's part of some larger stack that we're not using, and seems to be opinionated towards that

Unleash

    Good, because it's free if self-hosted
    Good, because we can segment on PII since we store all the data
    Good, because devs could run their own instance for local development
    Good, because it has high community activity on GitHub
    Bad, because it doesn't come with built-in support for multiple environments
    Bad, because the UI is hard to navigate and counter-intuative in places
    Bad, because we'd have to implement authorization ourselves

ConfigCat

    Good, because they don't base their pricing on MAU but config downloads
    Good, because they can be configured to store everythin in EU
    Good, because setup is easy
    Good, because it has built-in support for multiple environments
    Bad, because we would want to implement our own relay
    Bad, because it seems quite bare-bones compared to others
    Bad, because it only supports development environment inside the product
    Bad, because it's really hard to segment on PII

FeatureFlagTech

    Good, because it's cheap
    Good, because setup is easy and maintenance is really low
    Bad, because we would want to implement our own relay
    Bad, because it doesn't support user segmentation or variations
    Bad, because their UI is horrible

Links

Last modified 8mo ago