Feature Flag: o que é, para que serve e porque toda arquitetura moderna deveria usar!

Vamos começar hoje com uma historinha rápida?

Era pra ser só mais uma entrega simples.

A equipe tinha reescrito uma funcionalidade crítica — tudo testado, validado, bonitinho. Deploy feito, tudo no ar. Mas bastou um comportamento inesperado com um grupo específico de usuários… e pronto: a operação travou, os chamados começaram a aparecer para todo lado, e o rollback virou uma corrida contra o tempo.

Quantas vezes você já viu isso acontecer? Eu, sinceramente, já perdi a conta. Às vezes como espectador, outras vezes ali mesmo — correndo junto, tentando resolver no calor do momento.

Mas aí eu te pergunto: e se existisse um jeito mais simples de voltar atrás? Sem precisar rodar nova esteira, sem mexer no manifesto, sem disparar um novo pipeline. Só… desligar a V2 e voltar pra V1. Simples assim.

E na verdade existe algo para ajudar a minimizar tudo isso, estou faladno do Feature Flag — uma daquelas ideias que, depois que você entende e começa a usar, se pergunta como viveu tanto tempo sem.

Não é sobre deixar o sistema mais complexo. É sobre ganhar controle, flexibilidade e segurança pra lidar com mudanças — principalmente em ambientes onde evoluir rápido é essencial, mas errar custa caro.

O que é Feature Flag?

Em termos diretos: é uma flag, um interruptor que você liga ou desliga pra ativar ou desativar funcionalidades específicas no seu sistema. Pode ser um true/false, uma porcentagem, uma segmentação por usuário, etc.

A mágica está aqui: você mantém duas versões de uma lógica no código, mas só uma está ativa. E pode trocar isso sem fazer deploy.

Por que isso é tão importante?

Porque em uma arquitetura moderna — ou melhor, em qualquer arquitetura que queira evoluir com segurança — você precisa de ferramentas que te ajudem a entregar sem medo e com Feature Flag você consegue:

  • Reduzir risco nas entregas
  • Ativar ou desativar funcionalidades sem downtime
  • Fazer rollback em segundos, sem precisar de novo deploy
  • Refatorar com confiança, sem medo de quebrar o sistema todo
  • Operar com muito mais controle e flexibilidade
  • Liberar novas funcionalidades para apenas uma parte dos usuários, de forma gradual e segura

E tudo isso sem travar o time, sem depender de um novo deploy, e sem aquela dor de cabeça de última hora.

Um exemplo real

Imagina que você reescreveu a lógica de geração de boletos e empacotou tudo na sua versão V2 da aplicação. Em vez de subir isso direto em produção e cruzar os dedos, você faz o deploy normalmente, mas deixa essa nova funcionalidade desligada por padrão — controlada por uma feature flag.

A qualquer momento, você pode ativar a flag para um grupo específico de usuários, acompanhar o comportamento, monitorar os logs… e se algo sair do esperado? Simples: desliga a flag e tudo volta a funcionar como antes. Sem redeploy. Sem rollback. Sem pânico.

(E isso faz ainda mais sentido quando falamos de refactor usando strangler fig! Mas esse já é assunto pra outro newsletter 😉)

Feature Flag e operação de verdade

Ela não serve só pra entrega. Feature Flag também brilha na operação do dia a dia:

  • Ativa ou desativa rotas com uma variável de ambiente
  • Permite debug com flags específicas, só quando necessário
  • Ajuda a isolar falhas sem precisar tocar no código
  • Evita código comentado, condicional e hardcoded
  • Pode ser aplicada por usuário, por grupo, por região, por horário…

E o melhor: você pode implementar isso de várias formas, desde as mais simples até as mais robustas — usando arquivos locais, variáveis de ambiente, bancos de configuração ou ferramentas como: AWS AppConfig, LaunchDarkly, Unleash, Flagsmith, ConfigCat…

Cada uma com seu nível de controle, integração e governança. A escolha depende do seu contexto — o importante é ter esse poder nas mãos.

E claro, da pra fazer muita coisa Customizada sem usar um produto de mercado…

Push vs Pull

Flag bem implementada não é um push, é um pull. Ou seja: sua aplicação consulta periodicamente o valor da flag — de um arquivo, uma API, uma variável de ambiente — e age com base nesse valor.

Isso dá controle, segurança e independência. Nada de ficar preso em ciclos de deploy só pra mudar um if.

Conclusão

Arquitetura não é sobre seguir modinha — é sobre ter controle, confiança e capacidade de adaptação em ambientes complexos.

Feature Flag te dá exatamente isso: a liberdade de evoluir seu sistema sem travar entregas, sem depender de rollback, e sem jogar com o risco no escuro. É uma ferramenta poderosa, mas acima de tudo, é uma forma mais madura de pensar arquitetura e operação.

Por isso mesmo, no CaD a gente fala tanto sobre esse tema — seja nas aulas de arquitetura, nos debates sobre sustentação, ou nas trilhas complementares.

Se você quer evoluir como referência técnica, tomando decisões com segurança e ganhando visão de arquitetura moderna e resiliente de verdade, te convido a conhecer a Comunidade de Arquitetura Descomplicada (CaD).

Saiba mais em 🔗 https://mugnos-it.com/cad/

Abraços,

Douglas Mugnos

MUGNOS-IT 🚀

guest
0 Comentários
Mais Velhos
Mais Novos Mais Votados
Inline Feedbacks
Veja todos comentários
0
Gostaria muito de saber sua opinião!x