Skip to content

Integracion con DDD y arquitectura hexagonal

Clean Architecture, DDD y arquitectura hexagonal no son enemigos. Suelen encajar muy bien.

Relacion entre enfoques

  • DDD ayuda a modelar el negocio.
  • Hexagonal ayuda a aislar puertos y adaptadores.
  • Clean Architecture ayuda a ordenar dependencias por capas.

Mapa mental

txt
DDD:
  entidades, value objects, agregados, bounded contexts

Hexagonal:
  puertos de entrada, puertos de salida, adaptadores

Clean Architecture:
  dominio, aplicacion, infraestructura, presentacion

Ejemplo de combinacion

txt
orders/
  domain/
    Order
    OrderLine
    Money
  application/
    ConfirmOrderUseCase
    OrderRepository
    PaymentGateway
  infrastructure/
    PostgresOrderRepository
    StripePaymentGateway
  presentation/
    OrderController

DDD da sentido al modelo. Hexagonal marca los puertos. Clean Architecture ordena la dependencia.

Cuando usar DDD

DDD aporta valor cuando el negocio tiene reglas complejas, hay conversaciones frecuentes con personas de negocio o el sistema no es solo CRUD.

Cuando usar hexagonal

Hexagonal es especialmente util cuando hay varias formas de entrada, varias integraciones externas o necesitas tests aislados de adaptadores.

Error comun

Pensar que hay que aplicar todos los patrones a la vez. Puedes empezar con casos de uso y repositorios, despues introducir value objects, luego eventos y finalmente bounded contexts si el sistema lo pide.