Chapter 1: Reliable, Scalable, and Maintainable Applications

Reliability, Scalability, and Maintainability

Today's applications are data-intensive, as opposed to compute-intensive. Raw CPU power is rarely the limiting factor — the bigger problems are the amount of data, the complexity of data, and the speed at which it changes.

Key Principles:

  • Reliability: The system should continue to work correctly even in the face of adversity (hardware failures, software faults, human errors).
  • Scalability: As the system grows (in data volume, traffic volume, or complexity), there should be reasonable ways to deal with that growth.
  • Maintainability: Over time, many different people will work on the system. They should be able to work productively.