Skip to content

Getting Started

El Data Inventory Worker es un servicio diseñado para transformar notificaciones del sistema Inventory Manager a un formato adecuado para el equipo de Datos. Actúa como un puente entre el sistema de gestión de inventario y los procesos de análisis de datos, asegurando que la información de inventario sea procesada correctamente y esté disponible para su análisis.

  • Node.js: Entorno de ejecución (v20+)
  • TypeScript: Lenguaje de programación para código con tipado seguro
  • Express: Framework web para el servidor HTTP
  • AWS SDK: Para interactuar con servicios de AWS (SQS, SNS)
  • cron: Para programar tareas periódicas
  • @justomx/either: Para manejo funcional de errores
  • @justomx/context: Para gestión de contexto

El worker interactúa con los siguientes servicios externos:

  • AWS SQS (Simple Queue Service): Utilizado para recibir mensajes de eventos de inventario que necesitan procesamiento
  • AWS SNS (Simple Notification Service): Utilizado para publicar eventos de transacciones de inventario procesados a los suscriptores

Estos servicios están implementados en el directorio src/infrastructure/services:

  • queue/index.ts: Implementa el cliente SQS para recibir y eliminar mensajes
  • event-dispatcher/index.ts: Implementa el cliente SNS para publicar eventos

Este worker forma parte de un ecosistema más amplio de microservicios:

  1. Recibe mensajes del sistema Inventory Manager a través de una cola SQS
  2. Procesa estos mensajes, transformándolos en un formato adecuado para el análisis de datos
  3. Publica los eventos procesados en un tema SNS, donde pueden ser consumidos por los servicios del Equipo de Datos

El punto de entrada principal del worker se encuentra en src/index.ts. Este archivo:

  1. Inicializa el worker y sus dependencias
  2. Configura un trabajo cron si está habilitado a través de la configuración
  3. En cada ejecución del trabajo cron:
    • Crea un nuevo contexto para la operación
    • Inicializa el procesador de inventario de datos
    • Crea una nueva instancia de DataInventoryWorker
    • Ejecuta el worker para procesar mensajes de la cola
    • Maneja cualquier error que ocurra durante el procesamiento

El worker puede configurarse a través de variables de entorno, incluyendo la habilitación/deshabilitación del trabajo cron y la configuración de su programación de ejecución.