Chapter 3. Selecting a Feature Management Platform
Feature flags are not a new idea in software development. However, the increasing pace of delivery has shifted the technique from a rarely used tool to a requirement in modern applications. With the more frequent use of flags and the sheer number of flags used in software increasing, teams need a scalable, enterprise-grade feature management platform. In this chapter, I discuss important requirements and considerations for your feature management system. Whether you decide to build your own or opt for a third-party feature management service, you should ensure that it is well designed.
When teams embark on a journey of feature management, they often go through similar stages of development:
- Stage 0: Config file
This is typically where teams start with feature flags. Developers create a flat file of values that is read at initialization time to provide configuration values for an application. However, values often can’t be changed after application startup and are static, meaning it’s not possible to offer different settings to different users. Flag values proliferate until they become difficult to manage in a single file, and the files run the risk of losing synchronization across different deployments.
- Stage 1: Database
Developers often decide to move flag values into an application-wide database. A database can be queried during runtime and updates can be read without the need to reinitialize the ...