Introducción: Caché bajo demanda
Cache-Aside (Lazy Loading) significa que la aplicación consulta primero la caché y solo si no encuentra el dato, va a la base y luego lo guarda en caché.
Este patrón reduce latencia en lecturas repetidas y te permite controlar explícitamente la invalidación.
El costo es manejar coherencia: si el dato cambia, debes invalidar o actualizar la caché para evitar servir información vieja.

Prompt: Cache-aside flow with cache miss and database, clean minimal style.
1. Naturaleza: Almacén de acceso rápido
En un supermercado, los productos más vendidos se ponen cerca de la caja para acelerar el acceso.
Cuando no hay stock cerca, se busca en la bodega y luego se repone el estante visible.
Cache-Aside funciona igual: primero revisas la “estantería rápida” y solo bajas al almacén cuando falta.

Prompt: Store front shelf vs warehouse, soft illustration.
2. Mundo Real: Catálogo de productos
Un e-commerce consulta cache para productos populares. Si no está, va a la base, trae el producto y lo guarda en cache.
Cuando el precio cambia, se invalida la entrada de cache para evitar mostrar valores desactualizados.
El rendimiento mejora drásticamente en catálogos con alta repetición de consultas.

Prompt: E-commerce cache flow, clean flat style.
3. Implementación en C#: Código Paso a Paso
public async Task<Producto> GetProductoAsync(string id)
{
var cached = await cache.GetAsync<Producto>(id);
if (cached != null) return cached;
var producto = await repo.GetByIdAsync(id);
if (producto != null)
await cache.SetAsync(id, producto, TimeSpan.FromMinutes(10));
return producto;
}
La clave está en definir un TTL razonable y tener una estrategia clara de invalidación o actualización.
Si los cambios son frecuentes, usa expiraciones cortas o invalidación explícita al escribir.
4. Cache-Aside vs Read-Through
En Cache-Aside, la aplicación controla la carga de datos. En Read-Through, la caché lo hace automáticamente.
Cache-Aside ofrece mayor control; Read-Through simplifica la lógica, pero depende más del proveedor de caché.
5. Diagrama UML

Prompt: UML diagram of cache-aside pattern, clean vector layout.

Prompt: Cache-aside flow diagram, minimal infographic style.
⚠️ Cuándo NO Usar Cache-Aside
- Si la consistencia debe ser estricta y no puedes tolerar datos stale.
- Si no tienes una estrategia clara de invalidación.
- Si la carga de la base es baja y la caché no aporta valor.
💪 Ejercicio
Implementa Cache-Aside para un catálogo y define una política de expiración por tipo de producto.
Conclusión
Cache-Aside es simple y flexible. Ofrece mejoras de rendimiento significativas en lecturas frecuentes.
Con una buena política de invalidación, se vuelve una herramienta clave en sistemas de datos.