Clean Architecture es un enfoque de diseño de software propuesto por Robert C. Martin (Uncle Bob) que organiza el código en capas concéntricas, con la lógica de negocio (Entities y Use Cases) en el centro y los detalles de implementación (Frameworks & Drivers, UI, Database) en las capas exteriores. La regla fundamental es la 'Dependency Rule': las dependencias solo pueden fluir hacia adentro. Esto significa que las capas internas no deben saber nada sobre las capas externas. Se logra a menudo mediante el uso de interfaces y el principio de inversión de dependencias (Dependency Inversion Principle), permitiendo que la lógica de negocio sea independiente de cualquier tecnología o framework específico.
Aunque no es un sistema o herramienta per se, Clean Architecture es una guía de diseño adoptada en una multitud de proyectos de software, especialmente en aplicaciones empresariales y microservicios. Por ejemplo, equipos que construyen APIs RESTful con frameworks como Spring Boot (Java), .NET Core (C#) o NestJS (Node.js) a menudo estructuran sus proyectos siguiendo estos principios para mantener la lógica de negocio desacoplada de la infraestructura. Sistemas de gestión de contenido (CMS) personalizados, plataformas de e-commerce complejas y aplicaciones de banca digital son ejemplos donde la longevidad y la mantenibilidad son críticas, y Clean Architecture proporciona una base sólida para lograrlo.
Para un Arquitecto de Sistemas, Clean Architecture es fundamental porque promueve la mantenibilidad, la testeabilidad y la flexibilidad a largo plazo. Permite cambiar fácilmente componentes externos (como una base de datos o un framework web) sin afectar la lógica de negocio central. El trade-off principal es una mayor complejidad inicial y una curva de aprendizaje más pronunciada, ya que requiere una inversión en abstracciones y la gestión de múltiples capas y proyectos. Sin embargo, esta inversión se justifica en sistemas con una vida útil esperada larga, requisitos cambiantes o donde la lógica de negocio es compleja y crítica, ya que reduce drásticamente el costo de futuras modificaciones y el riesgo de 'vendor lock-in'.