Se recomienda usar cuando exista una gran incertidumbre en las tecnologías externas que se van a utilizar. Proyectos con un tiempo muy largo de vida. Necesidad de una mayor flexibilidad. Equipos relativamente expertos.

También conocida como arquitectura de puertos y conectores.

Untitled

Las flechas indican la dependencia de los componente, así los componentes exteriores dependen de las interiores… Los módulos internos no dependen de los externos. Combina el DDD y la inversión de dependencias.

✅ Más fácil de testear

✅ Arquitectura mantenible a largo plazo

✅ Flexibilidad en cuanto a tecnologías externas

❌ Arquitectura muy pesada, coste de adaptación y mantenimiento y puede ser confuso al utilizar frameworks.

La Arquitectura Hexagonal, dada a conocer por Alistair Cockburn — y también conocida como arquitectura de puertos y adaptadores — , tiene como principal motivación separar nuestra aplicación en distintas capas o regiones con su propia responsabilidad. De esta manera consigue desacoplar capas de nuestra aplicación permitiendo que evolucionen de manera aislada. Además, tener el sistema separado por responsabilidades nos facilitará la reutilización.

Gracias a este desacoplamiento obtenemos también la ventaja de poder testear estas capas sin que intervengan otras externas, falseando el comportamiento con dobles de pruebas, por ejemplo.

Esta arquitectura se suele representar con forma de hexágono, pero el número de lados no es lo que importa, sino lo que estos representan.