Arquitectura Hexagonal
Patrón arquitectónico que aísla la lógica de negocio del mundo exterior mediante puertos y adaptadores, facilitando testing y cambio de tecnologías.
¿Qué es?
La arquitectura hexagonal (también llamada Ports & Adapters) organiza el código en capas donde la lógica de negocio está en el centro, completamente aislada de detalles técnicos como bases de datos, APIs o frameworks.
Estructura
[Adaptador HTTP] → [Puerto de entrada] → [Dominio] → [Puerto de salida] → [Adaptador DB]
- Dominio: lógica de negocio pura, sin dependencias externas
- Puertos: interfaces que definen cómo el dominio interactúa con el exterior
- Adaptadores: implementaciones concretas de los puertos
Beneficios
- Testing del dominio sin infraestructura
- Cambiar base de datos sin tocar lógica de negocio
- Múltiples interfaces (HTTP, CLI, eventos) para la misma lógica
- Separación clara de responsabilidades
Relación con otras arquitecturas
| Arquitectura | Autor | Capas | Diferencia clave |
|---|---|---|---|
| Hexagonal (Ports & Adapters) | Alistair Cockburn, 2005 | Dominio → Puertos → Adaptadores | Enfoque en puertos como contratos |
| Clean Architecture | Robert Martin, 2012 | Entities → Use Cases → Adapters → Frameworks | Capas concéntricas, dependencias hacia adentro |
| Onion Architecture | Jeffrey Palermo, 2008 | Domain Model → Domain Services → Application → Infrastructure | Similar a Clean, énfasis en el modelo de dominio |
Las tres comparten el principio fundamental: las dependencias apuntan hacia adentro, protegiendo la lógica de negocio de los detalles de infraestructura.
¿Por qué importa?
La arquitectura hexagonal protege la lógica de negocio de los detalles de infraestructura. Cuando la base de datos, el framework web o el proveedor de cloud cambian, solo se modifican los adaptadores — el dominio permanece intacto. Es la inversión en mantenibilidad a largo plazo.
Referencias
- Hexagonal Architecture — Alistair Cockburn, 2005.
- Ready for Changes with Hexagonal Architecture — Netflix Tech Blog, 2020. Caso de estudio de Netflix.
- DDD, Hexagonal, Onion, Clean, CQRS — Herberto Graça, 2017. Comparación de arquitecturas.