Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PRICE-API

Se implementa arquitectura hexagonal.
La idea es aislar completamente la lógica de negocio del detalle de las implementaciones. Esto nos da la flexibilidad de poder cambiar los adaptadores y, por ejemplo, pasar de REST a WSDL, o incluso tener más de una forma de interactuar con el sistema, cambiar el tipo de base de datos o agregar un API como fuente de datos.
Para esto separamos la lógica de negocio en un módulo aparte (core). Se definen de esta forma límites "físicos" con los módulos inbound (estímulos de entrada al sistema) y outbound (salida a otros sistemas y persistencia). El core sólo depende de la arquitectura, mientras que inbound y outbound dependen de core.
Mediante puertos y adaptadores secundarios se hace depender al outbound del core. Cómo mejora, en el caso del inbound, se podría aplicar la misma lógica con puertos primarios. Se implementa también CQRS de forma parcial; es decir, implementamos el concepto de Query y Command para separar la lógica que consulta al sistema de aquella que cambia su estado.
Para aislar completamente el core de la implementación y del framework utilizado, se agregó un módulo de arquitectura que implementa la integración con Spring Boot y abstrae la inyección de dependencias mediante un Service Locator. Este módulo se podría extraer como una librería y sacarlo fuera del proyecto para reutilizarlo en otros.
Finalmente, se incluye un Dockerfile para generar la imagen Docker de la app. Se podría hacer con el soporte a Buildpacks brindado por Spring Boot, pero en mi opinión la configuración de docker debería estar separada de las configuraciones de Maven, para separar lo referente al detalle de Ops de las configuraciones de Dev.

Correo de contacto: gabriel.eguia@izertis.com

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages