Dostępność (system jest dostępny i osiągalny) i niezawodność (system działa prawidłowo) są kluczowymi wymaganiami niefunkcjonalnymi. Ich osiągnięcie wymaga redundancji, tolerancji na błędy, eliminacji pojedynczych punktów awarii oraz eleganckich obsług błędów.
Dostępność vs niezawodność
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.
