Over a million developers have joined DZone.

Scale Cube: Simplified Scale Model for Microservices

DZone 's Guide to

Scale Cube: Simplified Scale Model for Microservices

Learn about a unique scaling model for microservices, the Scale Cube, which uses a three-dimensional approach including functional decomposition and sharding.

· Microservices Zone ·
Free Resource

One of the key benefits of microservices architecture is ease of scale. While going through various deployment and scaling model for microservices, I came across a very interesting scaling model called Scale Cube, defined by Martin L. Abbott and Michael T. Fisher. This model explains how infinite scaling can be achieved by implementing a three-dimensional approach, including functional decomposition and sharding.

The Scale Cube can be represented by this simple diagram:

Image title

X-Axis Scaling

This is the simplest form of scaling, where multiple instances of the application are deployed and managed by a load balancer. This scaling model is usually applied where the architecture is monolithic and the application can’t be split into independent, deployable modules. Such applications usually share a common database and cache and become very resource-consuming after a limit. Applications designed to scale in this manner become inefficient with increasing development and application complexity. Also, constant upgrades and releases add more complexity to this model.

Y-Axis Scaling

When a monolithic application is decomposed into smaller, autonomously deployable units, this approach of scaling can be achieved. Microservices support such a scaling model, as they are independent, smaller, fine-grained services with their own database.

Combining both X- and Y-Axis scaling with microservices architecture can give better scalability where multiple instances of the same microservices can be deployed with a load balancer.

Z-Axis Scaling

This scaling model is similar to X-Axis, with the difference that the individual instances process only a subset of data. So, from an application deployment point of view, each instance keeps the same set of code, but at the database level, data is partitioned into different shards. One common component of the application is responsible to routing the request to appropriate application instances. This is a common scaling technique applied for multi-tenant applications.


The Scale Cube model is very helpful in creating solutions for scale. Applications can be scaled infinitely if scale dimensions are combined with elastic cloud infrastructure. Using the Scale Cube with cloud infrastructure can provide cost-effective scaling capabilities without sacrificing critical system qualities.

scaling ,scalability ,microservices

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}