Implementation: Gating, Analytics, and Dual Path Management
Feature Gating
Every feature check becomes: if (!isHoldout(user) && featureEnabled(feature, user)). Holdout check must come first and short-circuit. This pattern ensures holdout users never see new features regardless of experiment assignment.
Centralize the isHoldout check in a single service. Every feature team imports this check rather than implementing their own. This prevents bugs where one team forgets the holdout check.
Dual Path Management
Old code paths must be maintained for holdout users. When you refactor the recommendation system, holdout users still need the old recommender. This creates maintenance burden: bug fixes in both paths, testing both paths, potential divergence over time.
Analytics Infrastructure
Track holdout status on every event. Build dashboards comparing holdout vs production on key long-term metrics. Set up automated alerts when holdout deviates significantly. Report weekly/monthly on cumulative impact.