Backend, APIs y datos · Avanzado

Caché: acelerar sin servir datos viejos

En una línea: Antes de añadir una caché, decide cuánto tiempo un dato viejo sigue siendo aceptable: es la única pregunta que de verdad importa.

Dónde ponerla

En el navegador, en la red de distribución, en el servidor de la app, y en un almacén compartido de clave-valor. Cada capa es más rápida y más difícil de invalidar. La mayor parte del dolor viene de capas apiladas sin una única política que decida.

Tres estrategias

Expiración por tiempo. Simple y suficiente para la mayoría de casos. Elige un tiempo corto para datos que cambian y uno lógico para datos estables.

Invalidación por evento. En la escritura, borra la clave. Más preciso, y exige recordar cada sitio que escribe.

Actualización en segundo plano. Sirve una copia existente y actualiza en paralelo: una experiencia fluida, a cambio de un valor algo viejo.

Trampas

Una clave de caché que no incluye la identidad o los permisos del usuario, así se sirven datos de uno a otro. Expiración masiva en el mismo momento que tumba la base de datos. Y una caché que tapa una consulta lenta en vez de arreglarla.

En profundidad

Mide la tasa de acierto de la caché y también el tiempo de respuesta sin ella. Una caché que oculta un problema en vez de resolverlo estallará en el peor momento: cuando se vacíe, y el sistema quede expuesto a la carga completa contra la que nunca se probó.