• Scalable systems can handle increased loads by adding resources while maintaining performance and cost-efficiency

Bottlenecks

  1. Centralised components
    • Single Database
  2. High Latency Operations
    • Long running data processing

Caching and replication can be used to distribute the load of the system

  • Longer running tasks can be broken down into smaller chunks to allow them to be run parallel
  • A single Queue can be split into multiple queues to spread the load

Design patterns used to distribute load:

  1. Fan-out
  2. Pipes
  3. Filters

For more info see page 8 on techniques used to scale systems