Systems could be scaled for more load
Vertically – Using a bigger machine
Horizontally – Using more machines ( this approach is becoming more prevalent … ec2 etc)
The other thing that we need to decide is Consistency or Availability ..
Consistency — Means all user requests will be processed in CONSISTENT time. This does not mean we will process all requests … some request will be returned with resource not present error. Once again Consistency means consistent in TIME to response not to response itself.
Availability — Means all user requested will be processes SUCCESSFULLY, but response time will not be consistent.
Unfortunately we cannot have both consistency and availability …. we can choose only one depending on what our business requirement.