Conceptos

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.

seed#hexagonal#ports-adapters#clean-architecture#architecture#patterns#testing

¿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

ArquitecturaAutorCapasDiferencia clave
Hexagonal (Ports & Adapters)Alistair Cockburn, 2005Dominio → Puertos → AdaptadoresEnfoque en puertos como contratos
Clean ArchitectureRobert Martin, 2012Entities → Use Cases → Adapters → FrameworksCapas concéntricas, dependencias hacia adentro
Onion ArchitectureJeffrey Palermo, 2008Domain Model → Domain Services → Application → InfrastructureSimilar 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

Conceptos