Pure vertical scaling is limited in its effectiveness but is relatively easier to achieve. Horizontal scaling helps improve the overall throughput of a system but takes longer to develop.
In order to better understand the issue, bottleneck performance of a system can be examined. A bottleneck represents a situation wherein excessive demand is placed on a particular system that results in the overall performance of the platform being severely affected.
For example, if there is an issue with the virtual machine’s local memory not being sufficient to process all of the incoming transactions, a vertical scale might help fix the problem — because by adding additional memory to the framework, the overall load can be reduced.
On the flip side, if an incoming transaction load cannot be handled by a platform’s existing hardware, then by employing a horizontal scale (i.e. adding additional processing units), one can rectify the issue.