Why You Need to Know System Characteristics
You need to understand system characteristics to make the right design decisions and satisfy non-functional requirements. When you say you want a system to be scalable or reliable, you have to know what that actually means—otherwise you can't design for it. This article covers what scalability, reliability, availability, and the rest mean so you can translate NFRs into concrete architectural choices.
Scalability
Scalability is the capability of a system, process, or network to grow and handle increased demand. Any distributed system that can continuously evolve in order to support a growing amount of work is considered scalable.
Reliability
Reliability refers to the ability of a system to continue operating correctly and effectively in the presence of faults, errors, or failures. In simple terms: a distributed system is considered reliable if it keeps delivering its services even when one or several of its software or hardware components fail.