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 🚀