Axis scaling
Axis scaling can be best represented through three dimensions of a cube; X-Axis, Y-Axis, and Z-Axis. Each of those dimensions describes a type of scaling:
- X-Axis: Horizontal duplication
- Y-Axis: Functional decomposition
- Z-Axis: Data partitioning
Figure 2-1: Scale cube
Let's go through the Axes, one at a time.
X-axis scaling
In a nutshell, x-axis scaling is accomplished by running multiple instances of an application or a service. In most cases, there is a load balancer on top that makes sure that the traffic is shared among all those instances. The biggest advantage of x-axis scaling is simplicity. All we have to do is deploy the same application on multiple servers. For that reason, this is the most commonly used type of scaling. However, it comes with its set of disadvantages when applied to monolithic applications.
Having a large application usually requires a big cache that demands heavy usage of memory. When such an application is multiplied, everything is multiplied with it...