Depois de consolidar observabilidade (logging, métricas, alertas), o desafio do Day 13 do #30DiasJava foi entregar controle de features sem deploys. O resultado é uma Feature Flags & Experimentation Platform que permite rollouts progressivos, testes A/B e kill switches instantâneos para qualquer microserviço Spring Boot.

🚩 What went live

  • Feature flag SDK (feature-flags-starter) com suporte a LaunchDarkly e Unleash (modo client-side e server-side).
  • Canary rollouts graduais por percentual de tráfego (ex.: 10% → 50% → 100%) com rollback automático via health checks.
  • A/B testing framework com segmentação por usuário (userId), tenant, país e atributos customizados.
  • Kill switches operacionais: desliga features instantaneamente via dashboard sem tocar no código.
  • Feature analytics: dashboard mostra adoção, impacto em métricas (revenue, error rate) e recomendações de rollout.

💡 Why it matters

  • Produtos lançam features com confiança: rollback em segundos se algo quebrar.
  • Experimentação viabiliza decisões baseadas em dados — não opiniões.
  • Devs reduzem branches longas: features ficam mergidas com flags disabled até o momento certo.

📚 Deep dive (+ code)


🧩 Implementation Notes

  • Client-side evaluation: flags resolvidas no pod, sem latência extra por chamada externa.
  • Server-side SDK: Spring Boot @FeatureFlag("new-checkout") com fallback para default quando o serviço de flags está offline.
  • Targeting rules: YAML/JSON define segmentos (beta-users, eu-region, tier=premium) e porcentagens.
  • Event tracking: cada avaliação de flag envia evento para analytics (LaunchDarkly insights ou Prometheus metrics).
  • Integrations: Webhooks para Slack/Teams quando flags mudam de estado, e APIs REST para gerenciar flags via GitOps.

✅ Daily checklist

  • SDK conectado ao serviço de flags (LaunchDarkly/Unleash) e health check feature-flags.connected = true.
  • Rollouts graduais monitorados via dashboards (adoption rate, error rate delta).
  • Kill switches testados em staging antes de produção.

Next episodeDay 14/30 — API Gateway & Rate Limiting