What is microservice?
“Microservice Architecture” has no concrete definition but we can describe it as a way of designing software applications that have independently deployable services, intelligence in the endpoints, and decentralized control of languages and data.
How small the microservice be?
A microservice should just handle one purpose and more specifically one thing. This one thing or one purpose can have a lot of meanings.
Many microservice suggest that each microservice can be as small as a single function. Imagine a single function microservice that needs an independent deploy cycle, independent logging, independent security, and monitoring, etc. These types of architecture will be too much for any application.
If we consider a microservice that serves one task as a unit is a good candidate for microservice. Let’s consider an example. Imagine we want to write a data migration application from a source application to a destination application. How can we split the tasks into multiple microservices?
A migration application has the following three tasks:
- Extract data from the source application
- Transform the source data to the destination data format
- Load the transformed data to the destination application
If we consider the above three tasks as three independent microservice, then it becomes a good for microservice architecture.