The image is available as collectible item on Opensea NFT marketplace.
In the past, software was made on monolithic architecture which is tightly coupled between modules, during development and deployment process. The architecture itself is good, in the past of software development industry where Software As a Service was not popular and scalability was not an issue, beyond the limitation of vertical scaling, challenges of maintaining software and fast growing remote workplaces where short and effective communication plays key factor to success of delivering software that works as expected.
In short, micro-services architecture is used to make a software distributed and horizontally scalable, not only in deployment but also in development.
In addition, each micro-services are small enough compared to one big chunk of project and each service does its own purpose.
What does it mean?
It mean readability of the code has improved, code are more documentable because developer can solely focus on module which belongs to them and more importantly, clear separation of ownership and responsibility between modules.
So what is wrong with vertical scaling?
There is nothing wrong scaling a software vertically. However, there are 2 main things we find disadvantages of doing vertical scaling in JarPlay.
In JarPlay, we designed our software as modular services, built on top of micro-services architecture which has a seamless api based protocol to communicate with each other, known as JarPlay Class technology. Moreover, we can wrap all module services in one bundle and deploy as monolithic software in UAT staging deployment in order to avoid unnecessary cost, which infrastructure is designed almost similar to the production environment using lesser computes.