academia/docs/architecture/decisions/ADR-001-clean-architecture.md

46 lines
1.1 KiB
Markdown

# ADR-001: Clean Architecture
**Estado:** Aceptado
**Fecha:** 2026-01-07
## Contexto
Necesitamos una arquitectura que permita:
- Testabilidad de reglas de negocio
- Independencia de frameworks
- Mantenibilidad a largo plazo
- Separación clara de responsabilidades
## Decisión
Adoptar **Clean Architecture** con 4 capas: Domain, Application, Adapters, Host.
```
Host → Adapters → Application → Domain
```
## Consecuencias
### Positivas
- Domain sin dependencias externas (puro C#)
- Reglas de negocio testeables sin mocks de infraestructura
- Fácil cambiar ORM o base de datos
- Fácil cambiar de REST a GraphQL (o viceversa)
### Negativas
- Mayor cantidad de archivos/proyectos
- Curva de aprendizaje inicial
- Overhead para proyectos muy pequeños
## Alternativas Consideradas
| Alternativa | Razón de Descarte |
|-------------|-------------------|
| N-Layer tradicional | Alto acoplamiento, difícil testear |
| Vertical Slices | Menor separación de concerns |
| Monolítico simple | No escala con complejidad |
## Referencias
- [Clean Architecture - Robert C. Martin](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)