- Scalable systems can handle increased loads by adding resources while maintaining performance and cost-efficiency
Bottlenecks
- Centralised components
- Single Database
- 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:
- Fan-out
- Pipes
- Filters
For more info see page 8 on techniques used to scale systems