Feature Flagging and Rollout System
Using Betas to Deploy New Features Safely - Shopify

Using Betas to Deploy New Features Safely - Shopify

2/12/2021

What this post added

This post introduces the concept of beta flags as a mechanism for safe feature deployment in continuous deployment environments. It details the anatomy of a beta flag system, defining 'Subject', 'BetaIdentifier', 'BetaFlag', and 'BetaRollout'. A key technical contribution is the implementation of a performant `BetaRollout#enabled?` method using a digest modulo 100 for consistent percentage-based rollouts. The post also proposes a higher-level 'Feature' abstraction to offer greater flexibility for rollouts, rollbacks, and escape hatches, and discusses important considerations like data structure reconciliation and the limitations of rollback for certain features.

Read the original post ↗