La Arquitectura Hexagonal, también conocida como Ports and Adapters, es un patrón arquitectónico propuesto por Alistair Cockburn con el objetivo de desacoplar la lógica de negocio de las tecnologías externas, como bases de datos, interfaces gráficas, servicios web o sistemas de mensajería. Su principal propósito es garantizar que el núcleo de la aplicación permanezca independiente de cualquier framework o infraestructura, permitiendo que el software evolucione sin afectar las reglas de negocio. A diferencia de las arquitecturas tradicionales en capas, donde la lógica suele depender de componentes externos, la arquitectura hexagonal invierte esta relación mediante el uso de puertos (interfaces) y adaptadores (implementaciones), logrando un diseño mucho más flexible y fácil de mantener.
Diagrama conceptual de la Arquitectura Hexagonal
En esta arquitectura, el dominio representa el corazón de la aplicación y contiene todas las reglas de negocio. Alrededor de él existen los puertos, que son interfaces que definen cómo el dominio se comunica con el exterior. Finalmente, los adaptadores implementan dichos puertos para interactuar con tecnologías específicas, como una base de datos MySQL, PostgreSQL, MongoDB, una API REST, una interfaz web o incluso una cola de mensajes como RabbitMQ o Kafka. Gracias a este enfoque, si en algún momento la organización decide cambiar de proveedor de base de datos o reemplazar un framework como Spring Boot por otro, la lógica del negocio permanece intacta, ya que únicamente se reemplazan los adaptadores correspondientes.