Architecture
Este documento describe la arquitectura implementada en el worker op-restocking-evaluator.
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 y hace que el sistema sea más mantenible y testeable.
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 tienen una identidad y representan conceptos de negocio (Restocking, Product, Inventory)
- ValueObjects: Objetos inmutables que representan conceptos sin identidad
- Domain Services: Servicios que encapsulan lógica de dominio que no encaja naturalmente en entidades
- Interfaces: Contratos que definen cómo el dominio interactúa con sistemas externos
- Errors: Tipos de error específicos del dominio
Componentes Principales
Section titled “Componentes Principales”restocking/: Entidades y lógica relacionada con alertas de reabastecimientoinventory/: Interfaces y tipos para gestión de inventarioproduct/: Interfaces y tipos para información de productosdemand/: Interfaces y tipos para pronósticos de demandarules/: Reglas de negocio para evaluar necesidades de reabastecimientoqueue/: Interfaces para procesamiento de mensajes de colautils/: Funciones de utilidad para operaciones de dominioerrors.ts: Tipos de error comunes utilizados en todo el 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 entidades de dominio para realizar tareas específicas
- Implementa los principales procesos de negocio
- Maneja el flujo de ejecución y la gestión de errores
- No contiene reglas de negocio, que pertenecen a la capa de dominio
Componentes Principales
Section titled “Componentes Principales”processor.ts: Implementa la lógica principal de evaluación de reabastecimientoworker.ts: Implementa el worker que procesa mensajes de colacheckers.ts: Implementa lógica de validación para mensajes entrantes
Capa de Infraestructura
Section titled “Capa de Infraestructura”La capa de infraestructura proporciona implementaciones concretas de las interfaces definidas en la capa de dominio. Esta capa:
- Implementa adaptadores para servicios externos
- Proporciona clientes HTTP para comunicación API
- Implementa manejo de mensajes de cola
- Configura y prepara la aplicación
Componentes Principales
Section titled “Componentes Principales”services/: Implementaciones de interfaces de servicio de dominiorestocking/: Cliente HTTP para el servicio de reabastecimientoinventory/: Cliente HTTP para el servicio de inventarioproduct/: Cliente HTTP para el servicio de productosdemand/: Cliente HTTP para el servicio de demandarules/: Cliente HTTP para el servicio de reglas
http/: Configuración del servidor Expresslogger/: Implementación de loggingproviders/: Proveedores de servicios e inyección de dependenciashealthcheck/: Implementación de health check para monitoreo