Arquitectura
El servicio generado sigue una Arquitectura Hexagonal (Puertos y Adaptadores) combinada con principios de Domain-Driven Design.
Capas
| Capa | Responsabilidad |
|---|---|
Domain |
Logica de negocio pura: aggregate roots, entidades, eventos de dominio e invariantes. Sin dependencias de framework. |
Ports |
Contratos (interfaces) que definen como el dominio interactua con el exterior. Se dividen en input ports (casos de uso) y output ports (persistencia, consultas, publicacion de eventos). |
Services |
Servicios de aplicacion que implementan los input ports y orquestan los output ports. No contienen logica de negocio. |
Adapters |
Implementaciones concretas que conectan los puertos con la tecnologia. Se dividen en inbound (controladores REST, listeners de eventos) y outbound (repositorios JPA, publicadores de eventos). |
Reglas fundamentales:
-
El dominio nunca importa adaptadores ni servicios.
-
Los puertos son solo interfaces.
-
Los adaptadores no dependen entre si — solo de los puertos que implementan.