Key concepts in system design.

Key characteristics:

Scalability: Capability of a system, procress or the network to grow and manage increased demand.

Horizontal scaling: Adding more machines to your pool.
Vertical Scaling: Adding more power(CPU, RAM…) to a existing server.

Reliability: Probability that a system will fail in given period.
Availability: Time that a system remain operational during given period.

Efficiency: Generally two standards -> response time(latency) & throughput(bandwidth).

Load balancer: A component that spread traffic across a cluster of servers to improve responsiveness and availability.

  • Load balancer can be placed between any two layer in the general 3 layer web application.