Skip to Content
Feature Flag Best Practices
book

Feature Flag Best Practices

by Pete Hodgson, Patricio Echagüe
March 2019
Intermediate to advanced
40 pages
40m
English
O'Reilly Media, Inc.
Content preview from Feature Flag Best Practices

Chapter 2. The Moving Parts of a Feature-Flagging System

At its core, feature flagging is about your software being able to choose between two or more different execution paths, based upon a flag configuration, often taking into account runtime context (i.e., which user is making the current web request). A toggle router decides the execution path based on runtime context and flag configuration.

Creating Separate Code Paths

Let’s break this down using a working example. Imagine that we work for an ecommerce site called acmeshopping.com. We want to use our feature-flagging system to perform some A/B testing of our checkout flow. Specifically, we want to see whether a user is more likely to click the “Place your order!” button if we enlarge it, as illustrated in Figure 2-1.

acmeshopping.com A/B testing
Figure 2-1. acmeshopping.com A/B testing

To achieve this, we modify our checkout page rendering code so that there are two different execution paths available at a specific toggle point:

renderCheckoutButton(){
  if( 
    features
      .for({user:currentUser})
      .isEnabled(“showReallyBigCheckoutButton”) 
  ){
    return renderReallyBigCheckoutButton();
  }else{
    return renderRegularCheckoutButton();
  }
}

Every time the checkout page is rendered our software will use that if statement (the toggle point) to select an execution path. It does this by asking the feature-flagging system’s toggle router whether the showReallyBigCheckoutButton ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Managing Feature Flags

Managing Feature Flags

Adil Aijaz, Pato Echagüe

Publisher Resources

ISBN: 9781492050452