lib-commons é a biblioteca Go da Lerian com ferramentas e componentes compartilhados, construída para ajudar você a criar microsserviços resilientes e consistentes em todo o nosso ecossistema. Ela centraliza a lógica comum para que você possa avançar mais rápido e focar no que torna seu serviço único.
Com blocos de construção modulares, testáveis e manuteníveis, a lib-commons acelera o desenvolvimento enquanto promove a padronização. De conectores de banco de dados a ferramentas de observabilidade, ela dá aos seus serviços uma base sólida para construir.
Funcionalidades principais
Componentes core
- Gerenciamento de aplicação – gerencie o ciclo de vida do seu serviço com
app.go. - Utilitários de contexto – registre logs, trace e propague metadados de requisição com
context.go. - Tratamento de erros – padronize erros de negócio e mapeie-os para respostas de API consistentes com
errors.go.
Conectores de banco de dados
- PostgreSQL – configuração de conexão, suporte a migrations e funções auxiliares.
- MongoDB – configuração simplificada e operações comuns.
- Redis – implementação de client e helpers reutilizáveis.
Mensageria
- RabbitMQ – client pronto para uso para publicação, consumo e gerenciamento de filas e exchanges.
Observabilidade
- Logging – interface de logging plugável com múltiplas implementações.
- Ofuscação de logs – use a variável de ambiente
SECURE_LOG_FIELDSpara ocultar campos sensíveis dos logs. - OpenTelemetry – suporte integrado para tracing, métricas e logs.
- Zap – suporte nativo para logging estruturado com Zap da Uber.
Utilitários
- Helpers de string – funções comuns de manipulação de strings.
- Conversão de tipos – converta entre tipos de forma segura.
- Helpers de tempo – utilitários de data e hora.
- Helpers de OS – ferramentas para interação com o sistema operacional.
- Utilitários de ponteiro – simplifique o trabalho com tipos ponteiro.
- Processamento de transações – valide e processe fluxos de transações financeiras.
Primeiros passos
Requisitos
1. Instale a lib
2. Adicione a lib ao seu projeto
Para usar alib-commons, inclua-a no gerenciamento de dependências do seu projeto. Em seguida, importe apenas os subpacotes que você precisa, mantendo suas dependências enxutas e seu código limpo.
Exemplo:
ContextWithLogger, WithFields ou ValidateTransactionRequest, sem trazer código desnecessário.
Módulo commons
O módulo
commons é o coração da biblioteca. Ele fornece utilitários simplificados e reutilizáveis para construir serviços Go robustos na Lerian.
Ele inclui:
- Gerenciamento de contexto – enriqueça fluxos de requisição com logging, tracing e propagação de metadados.
- Tratamento de erros – garanta validação e respostas de erro consistentes entre serviços.
- Conectores de banco de dados – gerencie conexões e queries para PostgreSQL, MongoDB e Redis.
- Mensageria – interaja com RabbitMQ usando helpers ergonômicos.
- Observabilidade – integrações nativas para logging (Zap), métricas e tracing (OpenTelemetry).
- Utilitários – ferramentas para trabalhar com strings, tipos, tempo, OS, ponteiros, transações, comandos shell e rede.
Contribuindo
Contribuições são bem-vindas! Se você escreveu lógica que poderia beneficiar outros serviços, vamos trazê-la para a lib-commons. Apenas certifique-se de que seu código é idiomático e coberto por testes.
Licença
- Elastic License 2.0 - consulte a página de LICENSE para detalhes.

