template-saas/docs/architecture/adr/ADR-007-storage-abstraction-layer.md
rckrdmrd 50a821a415
Some checks failed
CI / Backend CI (push) Has been cancelled
CI / Frontend CI (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / CI Summary (push) Has been cancelled
[SIMCO-V38] feat: Actualizar a SIMCO v3.8.0
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8
- Actualizaciones de configuracion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:08 -06:00

80 lines
1.6 KiB
Markdown

---
id: "ADR-007"
title: "Storage Abstraction Layer"
type: "ADR"
status: "Accepted"
priority: "P0"
supersedes: "N/A"
superseded_by: "N/A"
version: "1.0.0"
created_date: "2026-01-10"
updated_date: "2026-01-10"
---
# ADR-007: Storage Abstraction Layer
## Metadata
| Campo | Valor |
|-------|-------|
| ID | ADR-007 |
| Estado | Accepted |
| Fecha | 2026-01-10 |
| Supersede | N/A |
## Contexto
Se necesita soporte para multiples providers de storage (S3, R2, MinIO) con:
- Posibilidad de cambiar entre providers segun costos o disponibilidad
- Migracion sin cambios de codigo
- Soporte multi-tenant con aislamiento
## Opciones Consideradas
### Opcion 1: AWS SDK Solo
**Pros:** Nativo, bien documentado
**Contras:** Vendor lock-in
### Opcion 2: Abstraccion Propia
**Pros:** Control total
**Contras:** Mayor mantenimiento
### Opcion 3: AWS SDK v3 S3-Compatible (Elegida)
**Pros:** Cualquier storage S3-compatible funciona
**Contras:** Limitado a protocolo S3
## Decision
**Usamos AWS SDK v3 con configuracion S3-compatible** permitiendo conectar S3, R2, MinIO sin cambios de codigo.
## Implementacion
```typescript
const s3Client = new S3Client({
endpoint: process.env.STORAGE_ENDPOINT,
credentials: {
accessKeyId: process.env.STORAGE_ACCESS_KEY,
secretAccessKey: process.env.STORAGE_SECRET_KEY
},
forcePathStyle: true // Necesario para MinIO
});
```
## Consecuencias
### Positivas
- Cualquier storage S3-compatible funciona
- Migracion sin cambios de codigo
### Negativas
- Limitado a protocolo S3
- No aprovecha features especificos de cada provider
---
**Fecha decision:** 2026-01-10
**Autores:** Claude Code (Arquitectura)