lib-commons acelera el desarrollo mientras promueve la estandarización. Desde conectores de base de datos hasta herramientas de observabilidad, le da a tus servicios una base sólida sobre la cual construir.
Características clave
Componentes principales
- Gestión de aplicaciones – gestiona el ciclo de vida de tu servicio con
app.go. - Utilidades de contexto – registra, rastrea y propaga metadatos de solicitud con
context.go. - Manejo de errores – estandariza errores de negocio y mapéalos 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 helpers reutilizables.
Mensajería
- RabbitMQ – cliente listo para usar para publicar, consumir y gestionar colas e intercambios.
Observabilidad
- Logging – una interfaz de logging conectable con múltiples implementaciones.
- Ofuscación de logs – usa la variable de entorno
SECURE_LOG_FIELDSpara ocultar campos sensibles de los logs. - OpenTelemetry – soporte integrado para rastreo, métricas y logs.
- Zap – soporte integrado para el logging estructurado Zap de Uber.
Utilidades
- Helpers de cadenas – funciones comunes de manipulación de cadenas.
- Conversión de tipos – convierte de forma segura entre tipos.
- Helpers de tiempo – utilidades de fecha y hora.
- Helpers de SO – herramientas para interactuar con el sistema operativo.
- Utilidades de punteros – simplifica el trabajo con tipos de puntero.
- Procesamiento de transacciones – valida y maneja flujos de transacciones financieras.
Comenzando
Requisitos
1. Instalar la lib
2. Agregar la lib a tu proyecto
Para usarlib-commons, inclúyela en la gestión de dependencias de tu proyecto. Luego, importa solo los subpaquetes que necesites, manteniendo tus dependencias ligeras y tu código base limpio.
Ejemplo:
ContextWithLogger, WithFields o ValidateTransactionRequest, sin traer código innecesario.
Módulo commons
El módulocommons es el corazón de la biblioteca. Proporciona utilidades simplificadas y reutilizables para construir servicios Go robustos en Lerian.
Incluye:
- Gestión de contexto – enriquece flujos de solicitud con logging, rastreo y propagación de metadatos.
- Manejo de errores – garantiza validación consistente y respuestas de error entre servicios.
- Conectores de base de datos – gestiona conexiones y consultas para PostgreSQL, MongoDB y Redis.
- Mensajería – interactúa con RabbitMQ usando helpers ergonómicos.
- Observabilidad – integraciones integradas para logging (Zap), métricas y rastreo (OpenTelemetry).
- Utilidades – herramientas para trabajar con cadenas, tipos, tiempo, SO, punteros, transacciones, comandos shell y redes.
Contribuir
¡Las contribuciones son bienvenidas! Si has escrito lógica que podría beneficiar a otros servicios, traigámosla a lib-commons. Solo asegúrate de que tu código sea idiomático y esté cubierto por pruebas.Licencia
- Apache 2.0 - consulta la página LICENSE para detalles.

