Manual de Arquitectura Hexagonal
La arquitectura hexagonal organiza una aplicacion alrededor de su dominio y sus casos de uso. El exterior se conecta mediante puertos y adaptadores, de forma que HTTP, bases de datos, colas o proveedores externos no dicten el diseno interno.
Tambien se conoce como ports and adapters.
Capitulos previstos
- Introduccion y puertos adaptadores
- Dominio y casos de uso
- Adaptadores de entrada
- Adaptadores de salida
- Testing
- Aplicacion practica
- Puertos de entrada y salida
- Transacciones errores y eventos
- Integracion con frameworks
- Observabilidad y operacion
- Migracion desde arquitectura por capas
- Proyecto final
Idea central
txt
HTTP Controller
|
CLI Command -> Puerto de entrada -> Caso de uso -> Puerto de salida -> Repositorio SQL
| |
Event Consumer -> Cliente externoEl caso de uso no sabe si viene de HTTP, CLI, cron o Kafka. Tampoco sabe si guarda en PostgreSQL, MongoDB o un servicio externo.
Puertos
Un puerto es un contrato.
- Puerto de entrada: lo que la aplicacion ofrece.
- Puerto de salida: lo que la aplicacion necesita.
Adaptadores
Un adaptador conecta un puerto con tecnologia real.
- Entrada: REST controller, GraphQL resolver, job, consumer.
- Salida: repositorio SQL, cliente HTTP, cache, cola, filesystem.
Beneficio principal
La tecnologia se vuelve sustituible. El dominio y los casos de uso quedan protegidos de decisiones externas.
