Architecture
Este documento describe la arquitectura implementada en el worker para procesar reportes de mermas de inventario y enviarlos a SAP.
Arquitectura
Section titled “Arquitectura”El proyecto sigue una arquitectura hexagonal (también conocida como puertos y adaptadores) con tres capas principales: dominio, aplicación e infraestructura. Esta arquitectura promueve la separación de responsabilidades, la testabilidad y la mantenibilidad.
Capa de Dominio
Section titled “Capa de Dominio”La capa de dominio es el núcleo de la aplicación y contiene la lógica de negocio. Esta capa define:
- Entities: Objetos que representan los conceptos centrales del negocio (WasteReport, StockTransfer)
- ValueObjects: Objetos inmutables que representan conceptos sin identidad
- Ports: Interfaces que definen cómo la aplicación interactúa con sistemas externos
- Business Rules: Lógica de negocio central y reglas de validación
Componentes Principales
Section titled “Componentes Principales”waste/: Entities y lógica relacionada con reportes de mermassap-documents/: Interfaces y tipos para operaciones de documentos SAPqueue/: Interfaces y tipos para operaciones de colaerrors.ts: Definiciones de errores específicos del dominio
Capa de Aplicación
Section titled “Capa de Aplicación”La capa de aplicación orquesta el flujo de datos entre el mundo exterior y el dominio. Contiene los casos de uso de la aplicación, que representan las operaciones que el sistema puede realizar. Esta capa:
- Coordina las entities del dominio para realizar tareas específicas
- Implementa reglas de negocio de alto nivel
- Maneja la transformación de datos entre las capas de dominio e infraestructura
Componentes Principales
Section titled “Componentes Principales”worker.ts: Implementación principal del worker que orquesta el procesoprocessor.ts: Procesa eventos de reportes de mermastransformer.ts: Transforma reportes de mermas en transferencias de stock de SAPchecker.ts: Valida eventos y almacenes
Capa de Infraestructura
Section titled “Capa de Infraestructura”La capa de infraestructura proporciona implementaciones concretas de las interfaces definidas en el dominio. Esta capa:
- Implementa el acceso a servicios externos (AWS SQS, API de SAP)
- Proporciona adaptadores para sistemas externos
- Maneja preocupaciones técnicas como comunicación HTTP, logging y configuración
Componentes Principales
Section titled “Componentes Principales”services/: Implementaciones de interfaces de servicio del dominioqueue/: Implementación del servicio de cola usando AWS SQSsap-documents/: Implementación del servicio de documentos SAP usando HTTP
healthcheck/: Monitoreo de salud para la aplicaciónlogger/: Infraestructura de loggingproviders/: Proveedores de inyección de dependenciashttp/: Implementación del servidor HTTP