Arquitectura Hexagonal ¿Qué debemos entender?
|Core: La lógica de negocio y donde se resuelve el problema (modelado del problema comercial o del dominio).
Puerto: Los puertos se usan para comunicarse con otros componentes de la aplicación (módulos, sistemas, bases de datos, infraestructura).
Adaptador: El adaptador es un patrón bien conocido en el que una pieza de software actúa como intérprete entre dos lados diferentes. Se traduce del modelo de dominio al mundo exterior, y viceversa, según lo definido en cada puerto. Si bien el diagrama tiene forma de hexágono, eso no indica que esté limitado a seis puertos o adaptadores. Esa es solo una representación gráfica.
Un concepto de arquitectura que no se debe dejar de lado es la encapsulación. Y para recordar comento aquí lo siguiente:
La encapsulación (o el encapsulamiento) es un concepto que los programadores que están acostumbrados a trabajar con programación orientada a objetos dan por sentado y, de hecho, es una idea bastante básica. Cuando se habla de encapsulación, su mente se dirige a los métodos getters y setters. En pocas palabras, puede ocultar campos en su clase y controlar cómo los otros objetos interactúan con ellos. Esta es una forma básica de proteger el estado de su objeto (datos internos) del mundo exterior. De esta manera, desvincula el estado del comportamiento y puede cambiar el tipo de datos, validar la entrada, cambiar formatos, etc. En resumen, es fácil comprender las ventajas de este enfoque.
El encapsulamiento, afecta directamente a los microservicios y Apis. El objetivo siempre será mejorar los diseños, las buenas practicas y las aplicaciones.
Es relevante mencionar que el tema de la encapsulación es uno de los razonamientos centrales detrás de los microservicios. De hecho, un microservicio se considera una pieza de software desechable, fácil de escalar e interoperar con otros componentes similares a través de una API bien definida.
Además, cada microservicio que compone una aplicación es (en teoría) un producto, con un equipo dedicado detrás y que utiliza un conjunto de tecnologías (incluido el propio lenguaje de programación) diferente de los otros microservicios que lo rodean.
fuente: