Skip to main content

Scalability

Vertical Scaling

Definition: Improving a single server's capabilities by adding more resources (CPU, RAM, storage).

Characteristics

  • Simple to implement
  • Limited by maximum hardware capabilities
  • Single point of failure remains

Limitations

"Vertical scaling is very limited."

  • Physical hardware constraints
  • Cost increases exponentially
  • No fault tolerance improvement

Horizontal Scaling

Definition: Adding more machines to distribute load across multiple servers.

Strategies

Sharding

Splits data into smaller chunks distributed across multiple servers:

  • Range-based sharding: Data divided by value ranges
  • Directory-based sharding: Lookup table determines data location
  • Geographic sharding: Data distributed by geographic region

Replication

Keeps copies of data on multiple servers for high availability:

  • Master-slave replication: One writable master, multiple read-only slaves
  • Multi-master replication: Multiple writable masters with conflict resolution

Benefits

  • Nearly unlimited scaling potential
  • Built-in fault tolerance
  • Better geographic distribution

Choosing the Right Strategy

Consider Vertical Scaling When:

  • Simple applications with predictable growth
  • Limited budget for infrastructure
  • Applications that don't require high availability

Consider Horizontal Scaling When:

  • Large-scale applications with unpredictable growth
  • High availability requirements
  • Geographic distribution needs

Implementation Patterns

Database Scaling

  • Read replicas: Separate read and write operations
  • Connection pooling: Manage and reuse database connections
  • Indexing: Speed up frequently accessed columns

Application Scaling

  • Stateless design: Enables easy load distribution
  • Session externalization: Store sessions in external systems
  • Microservices: Break down monolithic applications

Key Takeaway: While vertical scaling is simpler, horizontal scaling provides the foundation for truly resilient, large-scale systems.