Skip to content

Aplicacion en backend ​

Clean Architecture en backend se nota especialmente cuando una API deja de ser una coleccion de controladores con consultas SQL y pasa a expresar casos de uso claros.

Estructura orientativa ​

txt
src/
  modules/
    orders/
      domain/
        Order.ts
        OrderLine.ts
        OrderStatus.ts
      application/
        CreateOrderUseCase.ts
        ConfirmOrderUseCase.ts
        OrderRepository.ts
      infrastructure/
        SqlOrderRepository.ts
        OrderMapper.ts
      presentation/
        OrderController.ts
        OrderRoutes.ts

La estructura puede variar por lenguaje, pero la intencion es la misma: las reglas quedan en el centro y los detalles en los bordes.

Controladores finos ​

Un controlador no deberia decidir reglas de negocio. Debe leer parametros, validar forma basica, llamar al caso de uso, traducir errores a HTTP y devolver una respuesta.

txt
Controller
  parsea request
  crea command
  ejecuta use case
  devuelve status code

Servicios de aplicacion ​

El caso de uso coordina, pero no deberia convertirse en una clase gigante.

Debe contener:

  • Flujo de la operacion.
  • Orquestacion entre repositorios y gateways.
  • Transacciones cuando aplique.
  • Publicacion de eventos de aplicacion.

No debe contener SQL, serializacion HTTP, detalles de framework ni renderizado de plantillas.

Persistencia ​

El repositorio concreto vive en infraestructura.

txt
application/OrderRepository
infrastructure/PostgresOrderRepository

El mapper evita que el modelo del ORM se filtre hacia el dominio.

Transacciones ​

Las transacciones suelen gestionarse en el nivel de aplicacion o infraestructura, no dentro de la entidad.

txt
transaction {
  order = repository.find(id)
  order.confirm()
  repository.save(order)
  eventBus.publish(order.events)
}

Frameworks ​

En Spring Boot, Django, FastAPI, Laravel, Express o NestJS puedes aplicar la misma idea, aunque cada framework empuje a una estructura concreta.

La clave es no confundir comodidad del framework con arquitectura del negocio.

Checklist ​

  • Los controladores no contienen consultas.
  • Los casos de uso tienen nombres de accion.
  • Los repositorios son contratos claros.
  • El dominio no importa clases del framework.
  • Los errores se traducen en el borde HTTP.