Microservice are everywhere, or at least so it seems because of such hype.
My aim here is to try to cut through some of the hype in favor of simplicity, and pragmatism. In the end, my hope is that you will be able to learn basic concept of microservice.
The irony is such that “microservices” is so “micro” and it is just a “services”.
What is micro-service?
- There is no standard, formal definition of microservices, there are certain characteristics that help us identify the style.
- Microservice is a design pattern of services.
- Software built by following microservice architecture style can, by definition, be broken down into multiple component services and each component service is a micro-service.
Lets talk about component services
- Component services follows SRP principal i.e Single Responsibility Principal.
- Component services are independently deployable, small and modular.
- Component services receive requests, process them, and generate a response accordingly.
- Component services operate independently without compromising the integrity of an application.
“DEPLOY YOUR OWN CODE INDEPENDENTLY“.
- A microservice can be developed by a fairly small team.
- Code for different services can be written in different languages.
- When change is required in a certain part of the application, only the related service can be modified and redeployed.
- No long-term commitment to technology stack
- Being a distributed system, it can result in duplication of effort.
- Testing can become complicated and tedious.
- Partitioning the software into microservices is very much an art.