Está en la página 1de 2

Arquitectura Hexagonal Backend

La arquitectura del backend se define como un único proyecto con diseño modular basado en Domain Driven Design (DDD) y pensado a futuro
para una posible separación en microservicios o un conjunto de servicios por responsabilidad.

Se definen tres módulos base, main, common y security.

Main: contiene la clase de arranque de la aplicación y archivos de configuración yml.


Common: contiene clases comunes a todos los proyectos, tal como configuraciones generales, manejador de excepciones, etc. En este
módulo no se deben poner clases con lógica de negocio o objectos de dominio, es decir son clases que todos los proyectos deban
conocer, con objetivo de evitar acoplamiento entre módulos.
Security: contiene toda la configuración de seguridad del proyecto.

Adicionalmente, contiene módulos basados en el principio de responsabilidad única, tal como apis-externas, apis-internas y resumen-proyecto,
los (…) representan nuevos módulos que puedan salir con futuros desarrollos siguiendo dicho principio y la estructura de paquetes de resumen-
proyecto.

Cada módulo a excepción del main esta implementado con una arquitectura hexagonal con el patrón CQRS a nivel de paquetes, la cual tiene
tres capas, infraestructura, aplicación y dominio. Cada capa debe seguir el principio de cierre común.
En la capa de infraestructura tenemos los controladores, implementaciones de repositorios y mappers. En el respositorio > resumen-
proyecto > infrastructure podemos ver la estructura establecida.
En la capa de aplicación tenemos las fabricas y los manejadores (casos de uso) los cuales se conectan a las clases de servicio o a la
interfaz del repositorio. En el respositorio > resumen-proyecto > application podemos ver la estructura establecida.
En la capa de dominio tenemos los servicios, las interfaces y los modelos. En el respositorio > resumen-proyecto > domain podemos ver
la estructura establecida.

También podría gustarte