Arquitectura hexagonal: puertos y adaptadores
Clase 21 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
Viendo ahora - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
La arquitectura hexagonal impulsa aplicaciones más claras y mantenibles al separar qué hace la aplicación de cómo se conecta con el exterior. Con puertos y adaptadores, se definen límites nítidos: la lógica central se enfoca en su funcionalidad, mientras los detalles técnicos viven en los adaptadores. Resultado: desacoplamiento, tests de unidad más simples y múltiples formas de consumo sin reescribir la lógica.
¿Qué es la arquitectura hexagonal y por qué importa?
La idea central es identificar dependencias externas y aislarlas detrás de puertos. Así, la aplicación conoce su contrato funcional, no sus implementaciones. Los adaptadores cumplen el rol de traducción: conectan la lógica con el mundo real.
¿Cómo funcionan los puertos?
- Son interfaces de comunicación finas con el exterior.
- Declaran funcionalidades: no detalles de transporte o formato.
- Permiten múltiples consumidores del mismo servicio.
¿Qué hacen los adaptadores?
- Implementan el “cómo” conectar: protocolos, formatos y destinos.
- Construyen mensajes según el consumidor: HTML, JSON o XML.
- Encapsulan detalles técnicos para que la lógica no se ensucie.
¿Qué gana el equipo con este enfoque?
- Desacoplamiento: cambios en infraestructura no rompen la lógica.
- Testabilidad: tests de unidad sin base de datos ni file system reales.
- Reuso: un mismo puerto sirve a varios canales.
¿Cómo se aplica en una aplicación web?
Un ejemplo típico: un puerto de servicios expone la funcionalidad central. Distintos adaptadores consumen ese puerto y presentan la información según el canal.
¿Qué expone el puerto de servicios?
- Una interfaz única para el mundo externo.
- Servicios consumidos por un adaptador HTTP que genera páginas HTML.
- Los mismos servicios servidos por una REST API que responde en JSON o XML.
¿Cómo se generan reportes en CSV?
- Se define un puerto de reportes independiente.
- Un adaptador consume ese puerto y produce archivos CSV descargables.
- El adaptador conoce el detalle CSV; la aplicación no lo necesita.
¿Cómo se integra almacenamiento y base de datos?
- Un puerto representa el acceso a datos.
- Adaptadores conectan a un file system local o a un servicio remoto como Amazon S3.
- Otro adaptador se encarga de la base: SQL o NoSQL sin acoplar la lógica.
¿Qué ventajas y riesgos de diseño debes considerar?
Esta arquitectura brinda control y claridad, pero exige disciplina. Si un puerto filtra detalles técnicos, se rompen las reglas y todo el ecosistema lo sufre.
¿Por qué facilita las pruebas?
- La lógica no depende de implementaciones reales.
- Los puertos permiten dobles de prueba simples.
- Se aislan errores a nivel de adaptadores.
¿Qué errores de diseño evitar?
- Hacer que un puerto “sepa” de file system o formatos.
- Obligar a un consumidor (por ejemplo, REST) a leer y desarmar archivos.
- Mezclar contratos funcionales con decisiones de infraestructura.
¿Cuándo optar por algo más simple primero?
- Si se necesita iterar más rápido al inicio.
- Cuando el dominio aún está en descubrimiento.
- Con la idea de evolucionar luego a hexagonal para ganar mantenibilidad.
¿Tienes dudas o quieres compartir cómo modelas tus puertos y adaptadores? Escribe tu comentario y conversemos sobre decisiones de diseño y trade-offs en tu contexto.