🧪 Problem-Driven Systems Lab

🛠️ Opciones de solución#

OpciónQué resuelveQué cuesta
Single-flight (un recálculo, el resto espera)Elimina la estampida de raíz: origin_computations baja a 1Los que esperan pagan la latencia del origen la primera vez
TTL con jitter (base ± rand(0, base/4))Desincroniza expiraciones masivasNinguno real; son dos líneas de código
Soft TTL + refresh asincrónicoNadie espera al origen: se sirve el valor viejo mientras uno refrescaSe sirve información desactualizada durante la ventana soft
Precalentado programadoLa clave nunca llega a expirar bajo tráficoHay que saber de antemano cuáles son las claves calientes
Lock distribuido (Redis SET NX, flock)Coordina entre procesos y entre máquinas, no solo entre hilosIntroduce una dependencia externa en el camino de lectura

Las tres primeras se combinan, y es lo que hace la variante singleflight de este caso. No son alternativas entre sí.


Caso 13 · Cache stampede y thundering herd⬅️ README del caso · ⚖️ Comparativa de los 7 stacks

🗺️ Contexto · 🩺 Síntomas · 🔍 Diagnóstico · 🧠 Causas raíz · 🛠️ Opciones de solución · ⚖️ Trade-offs · 💼 Valor de negocio · 🚨 Postmortem

Ver esta carpeta en GitHub ↗