A grande scala, i guasti sono inevitabili — i server si bloccano, le reti non funzionano, le dipendenze diventano non disponibili. Progettare per il guasto significa costruire sistemi che tollerano e si riprendono dai guasti elegantemente piuttosto che assumere che tutto funzioni. Questo è essenziale per sistemi affidabili.
Progettare per il guasto (la mentalità)
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.
