¿Qué son los feature flags?
Los feature flags (toggles) son interruptores que permiten activar o desactivar funcionalidades sin desplegar código. Permiten releases graduales, testing en producción y rollbacks instantáneos.
Estrategias comunes
- Release toggle: activa una funcionalidad para un porcentaje de usuarios.
- Experiment toggle: usado para A/B testing.
- Ops toggle: controla características operativas (modo mantenimiento).
- Permission toggle: activa features según el rol del usuario.
Implementación simple
const featureFlags = {
newCheckout: process.env.FLAG_NEW_CHECKOUT === 'true',
};
if (featureFlags.newCheckout) {
return newCheckoutController(req, res);
}
return oldCheckoutController(req, res);
LaunchDarkly
Plataforma enterprise de feature flags. Ofrece targeting por usuario, segmentación, reglas porcentuales y auditoría.
const client = launchdarkly.init(env.SDK_KEY);
const flagValue = await client.variation('new-checkout', user, false);
Unleash
Alternativa open source. Ofrece flags con estrategias, activación por usuario, gradual rollout y WebHooks.
Buenas prácticas
- Feature flags temporales: elimínalos cuando la funcionalidad esté estable.
- Nombres descriptivos y consistentes.
- Monitoreo: métricas de uso de cada flag.
- Evita flags anidados (complejidad exponencial).
- Cobertura de tests con flags.
¿Quieres implementar feature flags? En Vynta diseñamos estrategias de release gradual.