lib-commons
es la biblioteca Go de herramientas y componentes compartidos de Lerian, construida para ayudarle a crear microservicios resilientes y consistentes en todo nuestro ecosistema. Centraliza la lógica común para que pueda moverse más rápido y enfocarse en lo que hace único a su servicio.
Con bloques de construcción modulares, probables y mantenibles, lib-commons
acelera el desarrollo mientras promueve la estandarización. Desde conectores de base de datos hasta herramientas de observabilidad, le brinda a sus servicios una base sólida sobre la cual construir.
Características clave
Componentes centrales
- Gestión de aplicaciones – gestione el ciclo de vida de su servicio con
app.go
. - Utilidades de contexto – registre, rastree y propague metadatos de solicitud con
context.go
. - Manejo de errores – estandarice errores de negocio y mapéelos a respuestas API consistentes con
errors.go
.
Conectores de base de datos
- PostgreSQL – configuración de conexión, soporte de migración y funciones auxiliares.
- MongoDB – configuración simplificada y operaciones comunes.
- Redis – implementación de cliente y ayudantes reutilizables.
Mensajería
- RabbitMQ – cliente listo para usar para publicar, consumir y gestionar colas e intercambios.
Observabilidad
- Registro – una interfaz de registro conectable con múltiples implementaciones.
- Ofuscación de registros – use la variable de entorno
SECURE_LOG_FIELDS
para ocultar campos sensibles de los registros. - OpenTelemetry – soporte integrado para rastreo, métricas y registros.
- Zap – soporte integrado para el registro estructurado Zap de Uber.
Utilidades
- Ayudantes de cadenas – funciones comunes de manipulación de cadenas.
- Conversión de tipos – convierta de manera segura entre tipos.
- Ayudantes de tiempo – utilidades de fecha y hora.
- Ayudantes de SO – herramientas para interactuar con el sistema operativo.
- Utilidades de punteros – simplifique el trabajo con tipos de punteros.
- Procesamiento de transacciones – valide y maneje flujos de transacciones financieras.
Comenzando
Requisitos
1. Instalar la biblioteca
2. Agregar la biblioteca a su proyecto
Para usarlib-commons
, inclúyala en la gestión de dependencias de su proyecto. Luego, importe solo los subpaquetes que necesite, manteniendo sus dependencias ligeras y su código base limpio.
Ejemplo:
ContextWithLogger
, WithFields
o ValidateTransactionRequest
, sin traer código innecesario.
Módulo commons
El módulo
commons
es el corazón de la biblioteca. Proporciona utilidades simplificadas y reutilizables para construir servicios Go robustos en Lerian.
Incluye:
- Gestión de contexto – enriquezca los flujos de solicitud con registro, rastreo y propagación de metadatos.
- Manejo de errores – asegure validación consistente y respuestas de error en todos los servicios.
- Conectores de base de datos – gestione conexiones y consultas para PostgreSQL, MongoDB y Redis.
- Mensajería – interactúe con RabbitMQ usando ayudantes ergonómicos.
- Observabilidad – integraciones integradas para registro (Zap), métricas y rastreo (OpenTelemetry).
- Utilidades – herramientas para trabajar con cadenas, tipos, tiempo, SO, punteros, transacciones, comandos de shell y redes.
Para la lista completa de herramientas y funciones disponibles, consulte la documentación de referencia de Go.
Contribuir
¡Las contribuciones son bienvenidas! Si ha escrito lógica que podría beneficiar a otros servicios, traigámosla a lib-commons. Solo asegúrese de que su código sea idiomático y esté cubierto por pruebas.
Licencia
- Apache 2.0 - consulte la página de LICENCIA para más detalles.