Skip to content

System Design Index

Notes and resources on distributed systems and system design.

Important Terms

  1. Scalability: Ability of a system to handle varying loaded
  2. Horizontal Scaling (Scaling out): Add nodes with similar capacity to existing nodes in distributed system. Can be done dynamically while system is running. Eg: Cassandra, MongoDB
  3. Vertical Scaling (Scaling up): Add more CPU, memory etc to existing node(s). Can result in downtime. Eg: MySQL
  4. Diagonal Scaling: Combines horizontal and vertical scaling. Scale up first, then scale out.
  5. Availability:
  6. Uptime
  7. Redundancy
  8. Replication
  9. Load Balancing
  10. Distributed Data Storage
  11. Consistency Models
  12. Health Monitoring and Alerts
  13. Regular Maintanence and Updates
  14. Geographic Distribution
  15. Consistency Model
  16. Consistency Types

Resources

Concepts

Practice Questions