Em larga escala, falhas são inevitáveis — servidores travam, redes falham, dependências ficam indisponíveis. Projetar para falhas significa construir sistemas que toleram e se recuperam de falhas de forma elegante em vez de assumir que tudo funciona. Isso é essencial para sistemas confiáveis.
Projetar para falhas (a mentalidade)
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.
