Los feature flags permiten a los equipos de Go desplegar código en producción manteniendo el nuevo comportamiento desactivado hasta que se complete la validación, o activar un interruptor de emergencia sin necesidad de reconstruir el binario.
Un feature flag es una decisión en tiempo de ejecución: dada una clave de flag y un contexto de evaluación (usuario, tenant, región), devuelve habilitado o deshabilitado.
Los servicios Go evalúan flags en handlers, workers e interceptores gRPC.
OpenFeature proporciona un SDK neutral al proveedor; LaunchDarkly, Flagsmith y servicios de configuración internos se conectan como proveedores.
Los flags complementan los despliegues canary: canary cambia el tráfico entre binarios; los flags cambian el comportamiento dentro del mismo binario.
Valor por defecto true para nuevos flags - una interrupción del proveedor habilita código arriesgado para todos. Solución: valor por defecto false; opción de habilitación explícita por entorno.
Comprobaciones de flags en bucles intensivos - llamar al proveedor en cada fila de la base de datos. Solución: evalúa una vez por solicitud o almacena en caché con TTL que respete las actualizaciones en streaming.
Estado de flag inconsistente entre pods - caché obsoleto después de un interruptor de emergencia. Solución: usa streaming del proveedor; establece un TTL de caché corto para flags críticos.
Sin rastro de auditoría - nadie sabe quién habilitó payments-v2. Solución: usa registros de auditoría del proveedor o GitOps para la configuración de flags.
Flags permanentes - las ramas if flag se convierten en espagueti. Solución: tickets de retiro de flags; elimina rutas muertas después del despliegue completo.
Flags sensibles en logs - registrar el contexto de evaluación completo filtra PII. Solución: registra solo la clave del flag y el resultado.
Versiones de Stack: Esta página fue escrita para Go 1.26.x (GC por defecto Green Tea, modernizadores go fix - verifica el parche en la compilación), chi (última versión - verifica en la compilación), gin (última versión - verifica en la compilación), echo (última versión - verifica en la compilación), google.golang.org/grpc (última versión - verifica en la compilación), sigs.k8s.io/controller-runtime (última versión - verifica en la compilación), kubebuilder (última versión - verifica en la compilación), tinygo (última versión - verifica objetivos de placa en la compilación), wazero (última versión - verifica en la compilación) y golangci-lint (última versión - verifica el conjunto de linters en la compilación).
Revisado por Chris St. John·Última actualización: 18 jul 2026