Disponibilidade (o sistema está funcionando e acessível) e confiabilidade (o sistema funciona corretamente) são requisitos não-funcionais essenciais. Alcançá-los envolve redundância, tolerância a falhas, eliminação de pontos únicos de falha e tratamento gracioso de falhas.
Disponibilidade vs confiabilidade
AVAILABILITY → the system is UP and responsive (accessible when needed):
→ measured as uptime % ("nines": 99.9% = ~8.7h/year down; 99.99% = ~52min/year)
RELIABILITY → the system works CORRECTLY (does what it should, without failures/errors):
→ related but distinct (a system can be up but returning wrong results — available but
unreliable)
→ both matter: users need the system available AND working correctly.
