# 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)
