Getting Started
El Container Killer Worker es un servicio automatizado diseñado para eliminar contenedores vacíos que ya no están en uso en el sistema de inventario. Su función principal es monitorear las transacciones de salida de inventario, identificar contenedores que han quedado sin productos (stock cero) y eliminarlos del sistema, optimizando así los recursos y manteniendo limpio el inventario.
Tecnologías y Dependencias Clave
Section titled “Tecnologías y Dependencias Clave”Tecnologías Base
Section titled “Tecnologías Base”- Node.js: Entorno de ejecución para JavaScript
- TypeScript: Lenguaje de programación tipado que compila a JavaScript
- Express: Framework para aplicaciones web
Dependencias Principales
Section titled “Dependencias Principales”- cron: Para la programación de tareas periódicas
- @aws-sdk/client-sqs: Cliente para interactuar con Amazon SQS
- axios y axios-retry: Para realizar peticiones HTTP con capacidad de reintentos
- zod: Para validación de esquemas
- @justomx/either: Implementación del patrón Either para manejo de errores
- @justomx/logger: Biblioteca de logging
- @justomx/http-client: Cliente HTTP personalizado
Servicios Externos Utilizados
Section titled “Servicios Externos Utilizados”El worker interactúa con los siguientes servicios externos:
-
Servicio de Contenedores: Servicio HTTP que proporciona información sobre contenedores y permite su eliminación
- Implementado en
src/infrastructure/services/container/index.ts - Proporciona métodos para obtener información de contenedores y eliminarlos
- Implementado en
-
Servicio de Inventario: Servicio HTTP que proporciona información sobre el inventario
- Implementado en
src/infrastructure/services/inventory/index.ts - Proporciona métodos para contar los productos en un contenedor
- Implementado en
-
Amazon SQS: Servicio de colas para recibir mensajes de transacciones de salida
- Implementado en
src/infrastructure/services/queue/index.ts - Recibe y procesa mensajes de tipo
OutputTransactionEvent
- Implementado en
Relación con Otros Microservicios
Section titled “Relación con Otros Microservicios”El Container Killer Worker se integra con el ecosistema de microservicios de la siguiente manera:
- Recibe eventos de transacciones de salida desde el servicio de gestión de inventario a través de un tema SNS
- Interactúa con el servicio de contenedores para obtener información y eliminar contenedores
- Consulta el servicio de inventario para verificar si un contenedor está vacío
Componente Principal de Inicio
Section titled “Componente Principal de Inicio”El punto de entrada del worker se encuentra en src/index.ts. Este archivo:
- Inicializa el logger para el seguimiento de la aplicación
- Configura y arranca un trabajo cron según la expresión definida en la configuración
- En cada ejecución del cron, obtiene una instancia del worker y ejecuta su método
run() - Mantiene un estado de salud del cron para monitoreo
- Importa
./bin/wwwque configura un servidor Express para endpoints de salud y monitoreo
El worker está diseñado para ejecutarse periódicamente según la configuración del cron, procesando lotes de mensajes de la cola SQS en cada ejecución.