Architecture
Este documento describe la arquitectura implementada en el microservicio de Asignación de Ubicaciones, organizado en tres capas principales:
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 con identidad y ciclo de vida (Assignment, Location, Product)
- ValueObjects: Objetos inmutables que representan conceptos del dominio
- Domain Services: Servicios que operan sobre múltiples entidades
- Repositories Interfaces: Contratos para el acceso a datos
- Domain Events: Eventos que ocurren dentro del dominio
Componentes Principales
Section titled “Componentes Principales”assignment/: Entidades y lógica relacionada con asignaciones de ubicacioneslocation/: Entidades y lógica relacionada con ubicaciones de almacénproduct/: Entidades y lógica relacionada con productosuser/: Entidades y lógica relacionada con usuariosvalueobjects/: Value objects utilizados en todo el dominioobserver.tsysubject.ts: Interfaces para el patrón Observer
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 a un nivel más alto
- Gestiona transacciones y flujos de trabajo
- Implementa el patrón Observer para notificaciones de eventos
Componentes Principales
Section titled “Componentes Principales”usecases/: Implementaciones de los casos de usoassignments/: Casos de uso para gestionar asignacioneslocations/: Casos de uso para gestionar ubicaciones dentro de asignaciones
observers/: Implementaciones de observadoressns/: Observadores para emisión de eventos SNS
subjects/: Implementaciones de sujetos para el patrón Observer
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 datos a través de repositorios
- Proporciona controladores y rutas HTTP
- Implementa integraciones con servicios externos
- Proporciona logging y manejo de errores
Componentes Principales
Section titled “Componentes Principales”repositories/: Implementaciones de repositorios para MongoDBhttp/: Controladores HTTP, rutas y middlewareservices/: Integraciones con servicios externosevent-dispatcher/: Implementación de despachadores de eventos
providers/: Funciones factory para crear componentes de infraestructuralogger/: Implementación de loggingcache/: Mecanismos de cachéhealthcheck/: Implementación de verificación de salud