Disponibilidad (el sistema está activo y accesible) y confiabilidad (el sistema funciona correctamente) son requisitos no funcionales clave. Lograrlas implica redundancia, tolerancia a fallos, eliminar puntos únicos de fallo y manejar fallos de manera elegante.
Disponibilidad vs confiabilidad
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.
