¡Hola Hackmates! Estoy trabajando en un microservicio de pagos y he optado por una arquitectura hexagonal (puertos y adaptadores). La idea es que el núcleo (dominio) no dependa de nada externo. He separado en tres módulos: domain (entidades, repositorios como interfaces), application (casos de uso) e infrastructure (implementaciones de repositorios, controladores REST, etc.).
Mi duda principal: en el caso de uso ProcessPaymentUseCase, necesito llamar a un servicio externo de pasarela de pago (Stripe, por ejemplo). He creado un puerto (interfaz) PaymentGateway en domain, y su implementación en infrastructure. Pero siento que el caso de uso se vuelve anémico si solo orquesta llamadas. ¿Es correcto o debería poner lógica de negocio (como validaciones de monto, comisiones) dentro del caso de uso?
Además, para manejar errores de la pasarela, estoy usando excepciones propias del dominio. ¿Algún consejo sobre cómo estructurar mejor esto? ¡Gracias!