- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Actualizaciones de configuracion Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
| id | title | type | status | priority | supersedes | superseded_by | version | created_date | updated_date |
|---|---|---|---|---|---|---|---|---|---|
| ADR-007 | Storage Abstraction Layer | ADR | Accepted | P0 | N/A | N/A | 1.0.0 | 2026-01-10 | 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
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)