Como Implementar Module Flag em um Sistema Modular em Golang

*Module Flag *é uma técnica de controle usada para ativar ou desativar módulos de um sistema. Com essa técnica, não é necessário desactivar/activar pelo código-fonte. Esse controle pode ser feito através da base de dados, configurações em arquivos, variáveis de ambiente e outros métodos. Vantagens Segurança Entrega Gradual Controle de Acesso Flexibilidade na Manutenção Redução de Riscos, no caso de módulos problemáticos Algumas Ferramentas / Bibliotecas para Feature Flag LaunchDarkly: https://launchdarkly.com Unleash: https://www.getunleash.io GoFeatureFlag: https://github.com/robfig/go-feature-flag Flagsmith: https://www.flagsmith.com FeatureHub: https://featurehub.io ConfigCat: https://configcat.com Togglz: https://www.togglz.org Passos para Criar pela Base de Dados Criar as tabelas de módulos e flags Criar um middleware para interceptar as operações dentro desse módulo Ler todas as flags dos módulos Activar ou desactivar os módulos de acordo com a necessidade Registar e retornar a mensagem de erro do módulo Se necessário, evoluir para restrição de usuários por módulo Código Fonte: https://github.com/ortizdavid/golang-modular-software

Jan 17, 2025 - 15:07
Como Implementar Module Flag em um Sistema Modular em Golang

*Module Flag *é uma técnica de controle usada para ativar ou desativar módulos de um sistema. Com essa técnica, não é necessário desactivar/activar pelo código-fonte.

Esse controle pode ser feito através da base de dados, configurações em arquivos, variáveis de ambiente e outros métodos.

Vantagens

  • Segurança
  • Entrega Gradual
  • Controle de Acesso
  • Flexibilidade na Manutenção
  • Redução de Riscos, no caso de módulos problemáticos

Algumas Ferramentas / Bibliotecas para Feature Flag

Passos para Criar pela Base de Dados

  • Criar as tabelas de módulos e flags
  • Criar um middleware para interceptar as operações dentro desse módulo
  • Ler todas as flags dos módulos
  • Activar ou desactivar os módulos de acordo com a necessidade
  • Registar e retornar a mensagem de erro do módulo
  • Se necessário, evoluir para restrição de usuários por módulo

Código Fonte: https://github.com/ortizdavid/golang-modular-software

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description