A escala, los fallos son inevitables — los servidores se cuelgan, las redes fallan, las dependencias dejan de estar disponibles. Diseñar para el fallo significa construir sistemas que toleren y se recuperen de fallos con elegancia en lugar de asumir que todo funciona. Esto es esencial para sistemas confiables.
Por qué es importante
ASSUME things WILL fail → at scale, failures are NORMAL, not exceptional:
→ servers crash, networks partition, disks fail, dependencies go down, traffic spikes
→ design systems to EXPECT and HANDLE failures gracefully (not assume everything works)
→ "everything fails all the time" → build resilience in.
