Chapter 1: Reliable, Scalable and Maintainable Systems

  • Common wisdom is to keep the database on a single node (scaling up) until cost or high availability requirements force you to make it distributed.
  • Maintainability: Take care of three things during design:
    • Operability: Make it easy for operations teams to keep the system running.
    • Simplicity: Should be easy to understand the system.
    • Evolvability: Should be easy to make changes to the system.