La Capa de Aplicación: Orquestando el Movimiento

arquitectura-hexagonal/aplicacion
@beresiartejuan 04-06-2025

Ya hablamos del dominio como el corazón de un sistema: el lugar donde viven las reglas puras del negocio.

Pero ese corazón no late solo. Alguien tiene que decirle cuándo activarse, con qué datos, y para qué. Ese alguien es la capa de aplicación.


¿Qué es realmente la capa de aplicación?

Es la encargada de coordinar el uso del dominio para cumplir con una intención concreta.

No define reglas, no guarda datos, no hace networking.
Lo que hace es recibir una intención (desde afuera del sistema), y ejecutar los pasos necesarios para que esa intención se cumpla correctamente.

Es como el árbitro en un partido: no juega, no anota goles, no diseña la cancha. Pero se asegura de que las reglas se usen en el momento adecuado.


No son archivos, son responsabilidades

Es muy común caer en esta trampa:

“¿Dónde va la capa de aplicación? ¿En qué carpeta? ¿Qué tipo de archivo es?”

Pero la verdad es que una capa no se define por su estructura física, sino por su rol en el sistema.

Un mismo archivo puede contener partes que pertenecen al dominio y otras que pertenecen a la aplicación (aunque no sea lo ideal).
Y un sistema bien organizado puede tener decenas de archivos dispersos que, juntos, componen la capa de aplicación.

Entonces… ¿Cómo la reconozco?

La lógica de aplicación:


La aplicación es el director de orquesta

Si pensás en tu sistema como una orquesta:

Sin director, cada músico haría lo que quiere.
Con un director bien entrenado, el conjunto suena armónico.


¿Qué vive en la capa de aplicación?

Acá van los elementos más comunes que encontrarás en esta capa:

● Casos de uso

También llamados use cases, representan intenciones completas que un usuario o sistema quiere ejecutar.
Por ejemplo:

Cada caso de uso tiene una secuencia clara: validaciones, llamados al dominio, acciones esperadas.
No decide cómo se hace cada cosa (eso lo define el dominio o la infraestructura), sino qué se hace y en qué orden.

● Coordinadores

Son funciones, métodos o clases que conectan varias partes del sistema, manteniéndolas desacopladas.

Por ejemplo:

Pero nunca hacen el trabajo directamente.
Solo orquestan las piezas, como quien mueve marionetas detrás del telón.


¿Qué no debería haber?

Para mantener la capa de aplicación limpia y útil a largo plazo, es importante evitar ciertos elementos:

Todo eso debería vivir en otras capas: infraestructura o validaciones de entrada.


Ejemplo con el juego de ajedrez

Volvamos a nuestro ejemplo:

Queremos permitir que un jugador mueva una ficha.

La capa de aplicación no se pregunta si el caballo se mueve en “L”.
Tampoco guarda el tablero en una base de datos, ni sabe si el juego es online o físico.
Lo que hace es:

Nada de eso requiere conocer la tecnología usada ni las reglas del ajedrez: solo cómo coordinar una acción.


¿Por qué es tan importante esta capa?

Porque sin ella, todo termina mezclado.
Los controladores llaman al dominio directamente. Las reglas se llenan de detalles técnicos. Y el sistema se vuelve imposible de testear o modificar sin romper cosas.

La capa de aplicación es ese espacio intermedio que evita el caos.

Además:


En resumen

La capa de aplicación:

✅ Se encarga de activar las reglas del dominio
✅ No contiene detalles técnicos
✅ Coordina acciones completas
✅ Permite que el sistema sea flexible, testeable y entendible

No importa si tenés una carpeta llamada “application” o no.
Lo que importa es que exista un espacio en tu sistema que cumpla esta función.

Lección Anterior Curso Siguiente Lección