Microservices

Have you ever tried to guess the architecture from the giants such as Facebook, Amazon, Alibaba, Tokopedia, etc? They provide many services for us. We can get them from any platform such as a web or mobile. You can imagine how big it is. How much computer resources they need.

Since we are beginners, we learned how to make an application. A web application as an example. We created the front-end using HTML, CSS, and JavaScript. We created the back-end using PHP, NodeJS, Python, etc. We picked up the server. Apache is the common picked. We picked up the database with MySQL. We put them all on the same computer.

That is called Monolithic. It is software architecture in which all of the modules are into a single program. It is simple to develop, test, deploy, and scale. This kind of software architecture is suitable for starters.

Microservices is the opposite. It is software architecture where all services are modular. They are all independent but communicate with each other. They could be made in different programming languages, different platforms, and different computers.

For example, an application presented in Web, Android, and iOS. All services are giving JSON as the output. They communicate using the REST API. All services have their own servers or resources. They have some databases that can be only accessed by specific services. Let's say that the application is an eCommerce. The services could be Users, Products, Orders, Payments, etc.

References