Key Characteristics of System Design

When discussing system design, several key characteristics emerge as essential for building robust, efficient, and adaptable systems.

Here's an overview of the most important ones:

1 Scalability

Definition: The ability of a system to handle increased loads – be it more users, data, or transactions – without sacrificing performance.

It can be done by various ways:

  • Horizontal scaling: Adding more machines.
  • Vertical scaling: Enhancing the capacity of a single machine.

2 Reliability

Definition: The system's ability to function correctly and consistently over time, even in the presence of faults or failure of any component.

It can be done through various ways:

  • Robust error handling.
  • Minimal downtime and quick recovery from failures.

3 Availability

Definition: The degree to which a system remains operational and accessible when needed. It is represented in 9's for example, 99.90% percent availability means downtime of some hours per year.

Key Points:

  • Use of redundant components.
  • Failover mechanisms to ensure continuous service even during partial system outages.

4 Efficiency

Definition: How efficiently a system processes tasks under various loads.

It is primarily measured by:

  • Latency: Delay in getting the first response.
  • Throughput: Number of operations handled in a given time.