Architecture
Este documento describe la arquitectura implementada en el microservicio Inventory Manager, explicando las diferentes capas y cómo interactúan entre sí.
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:
- Entidades: Objetos que tienen una identidad y un ciclo de vida (Entry, Product, Location, Container)
- Objetos de Valor: Objetos inmutables que representan conceptos del dominio
- Interfaces de Repositorio: Definen cómo se accede a los datos sin especificar la implementación
- Servicios de Dominio: Contienen lógica de negocio que no pertenece a una entidad específica
- Eventos de Dominio: Representan cambios significativos en el estado del sistema
Componentes Principales
Section titled “Componentes Principales”entry/: Entidades y lógica relacionada con entradas de inventarioproduct/: Entidades y lógica relacionada con productoslocation/: Entidades y lógica relacionada con ubicacionescontainer/: Entidades y lógica relacionada con contenedoresstrategies/: Implementaciones de estrategias de inventario (FIFO, FEFO)observer.tsysubject.ts: Interfaces para el patrón Observadorevent-dispatcher.ts: Interfaz para el despachador de eventos
Capa de Aplicación
Section titled “Capa de Aplicación”La capa de aplicación orquesta el flujo de datos entre el 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 transacciones y reglas de negocio de alto nivel
- Traduce entre el formato de datos externo y los objetos del dominio
- Maneja la notificación de eventos
Componentes Principales
Section titled “Componentes Principales”usecases/: Implementaciones de los casos de usoinput/: Casos de uso para entradas de inventariooutput/: Casos de uso para salidas de inventariotransfer/: Casos de uso para transferencias de inventarioverification/: Casos de uso para verificación de inventario
observers/: Implementaciones de observadoressubjects/: Implementaciones de sujetos observables
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 bases de datos
- Proporciona adaptadores para servicios externos (AWS SNS)
- Implementa la API HTTP
- Gestiona la configuración y el entorno
Componentes Principales
Section titled “Componentes Principales”repositories/: Implementaciones de repositorios para MongoDBservices/: Implementaciones de serviciosevent-dispatcher/: Implementación del despachador de eventos usando AWS SNSsns/: Servicios para interactuar con AWS SNS
http/: Controladores y rutas HTTPproviders/: Proveedores de servicios y dependenciascontext/: Contexto de la aplicación