Horizontal vs Vertical scaling

Load Balancing

Database denormalization and noSQL

Database partitioning (Sharding)

Vertical Partitioning (row splitting)

Key-based (Hash-based) partitions

Directory based partitioning

Cache

Processing operations asynchronously and queueing

Read heavy vs Write heavy

Networking

Bandwidth

Throughput

Latency

Example

MapReduce

Other considerations