Architecture
Este documento describe la arquitectura implementada en el worker de Auto-Restocking, que sigue los principios de arquitectura hexagonal (también conocida como puertos y adaptadores).
Arquitectura
Section titled “Arquitectura”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 central. Esta capa define:
- Entities: Objetos que tienen una identidad y un ciclo de vida (Restocking, Input)
- ValueObjects: Objetos inmutables que representan conceptos del dominio
- Domain Services: Servicios que operan sobre las entidades del dominio
- Interfaces (Ports): Contratos que la aplicación espera que sean implementados por componentes externos
Componentes Principales
Section titled “Componentes Principales”queue/: Interfaces y tipos relacionados con operaciones de cola de mensajesservice.ts: Define la interfaz QueueServicetypes.d.ts: Define estructuras de mensajeserror.ts: Define errores específicos de la cola
restocking/: Entidades y lógica relacionada con operaciones de reabastecimientoservice.ts: Define la interfaz RestockingServicetypes.d.ts: Define entidades y objetos de valor de reabastecimientoerrors.ts: Define errores específicos de reabastecimiento
errors.ts: Define errores comunes 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 entidades del dominio para realizar tareas específicas
- Implementa reglas de negocio y flujos de trabajo
- Maneja condiciones de error y casos límite
- Gestiona transacciones y consistencia
Componentes Principales
Section titled “Componentes Principales”worker.ts: Implementa el worker principal que procesa mensajes de la colaprocessor.ts: Procesa mensajes individuales y aplica lógica de negociocheckers.ts: Valida mensajes contra reglas de negocio
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 el acceso a servicios externos (AWS SQS, Restocking Manager)
- Proporciona funcionalidad de servidor HTTP para verificaciones de salud y monitoreo
- Configura e inicializa la aplicación
- Maneja preocupaciones técnicas como logging y manejo de errores
Componentes Principales
Section titled “Componentes Principales”services/: Implementaciones de interfaces de servicio del dominioqueue/: Implementación de QueueService usando AWS SQSrestocking/: Implementación de RestockingService usando HTTP
http/: Configuración de servidor HTTP y endpointsserver.ts: Configuración del servidor Expresscontrollers/: Manejadores de peticiones HTTProutes/: Definiciones de rutas HTTPmiddlewares/: Funciones middleware HTTP
providers/: Proveedores de inyección de dependenciasaws.ts: Proporciona clientes de servicio AWSservices.ts: Proporciona implementaciones de servicios del dominioworker.ts: Proporciona la instancia del worker
logger/: Infraestructura de logginghealthcheck/: Endpoints de verificación de salud