Architecture
Este microservicio está implementado siguiendo los principios de la arquitectura hexagonal (también conocida como arquitectura de puertos y adaptadores). Esta arquitectura permite una clara separación de responsabilidades y facilita la prueba y mantenimiento del código.
Arquitectura
Section titled “Arquitectura”Capa de Dominio
Section titled “Capa de Dominio”La capa de dominio contiene la lógica de negocio central del microservicio, independiente de cualquier infraestructura o tecnología específica.
Definir las entidades, reglas de negocio y lógica central del conteo de inventario.
Componentes Principal
Section titled “Componentes Principal”- Entidades:
InventoryCounting: Representa un conteo de inventario con sus propiedades y comportamientos.
- Value Objects:
- Objetos inmutables que representan conceptos del dominio como identificadores, nombres, cantidades, etc.
- Interfaces de Repositorio:
- Definen cómo se debe acceder y persistir las entidades del dominio.
- Interfaces de Servicios:
- Definen los servicios externos necesarios para el dominio.
- Patrón Observer:
- Interfaces
ObserverySubjectpara implementar el patrón de diseño Observer.
- Interfaces
- Errores del Dominio:
- 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 exterior y el dominio, implementando los casos de uso de la aplicación.
Coordinar la ejecución de casos de uso específicos utilizando las entidades y servicios del dominio.
Componentes Principal
Section titled “Componentes Principal”- Casos de Uso:
Counting/Create: Crea un nuevo conteo de inventario.Calendar: Gestiona operaciones relacionadas con fechas y tiempos.Notification: Maneja el envío de notificaciones.Verification: Realiza verificaciones sobre los conteos.HandleError: Gestiona errores de manera centralizada.
- Observadores:
- Implementaciones concretas del patrón Observer para reaccionar a eventos del dominio.
- Sujetos:
- Implementaciones concretas del patrón Subject para notificar a los observadores.
Capa de Infraestructura
Section titled “Capa de Infraestructura”La capa de infraestructura proporciona implementaciones concretas de las interfaces definidas en el dominio y la aplicación.
Proporcionar implementaciones técnicas específicas para las interfaces definidas en las capas internas.
Componentes Principal
Section titled “Componentes Principal”- Controladores HTTP:
- Manejan las solicitudes HTTP y las convierten en llamadas a casos de uso.
- Repositorios:
- Implementaciones concretas para acceder a la base de datos MongoDB.
- Servicios Externos:
- Implementaciones para interactuar con servicios externos como usuario, producto, ubicación, etc.
- Eventos:
- Implementaciones para publicar eventos a través de AWS SNS.
- Validadores:
- Implementaciones para validar datos de entrada utilizando Zod.
- Proveedores:
- Configuración y provisión de dependencias.
- Contexto:
- Gestión del contexto de la aplicación.
- Métricas y Logging:
- Implementaciones para recopilar métricas y registrar logs.