There are several definitions on the web about what a Microservice can do to transform monolith-heavy enterprises. However, less was talked about what a Microservice actually is and how micro can it be.
The word micro in the context of a Microservice means single thing done well (irrespective of its size). That single thing could be as-small-as a search suggestion to as-big-as making a bank transfer online. However, that single thing must always be a feature/task/action from a customer standpoint (period)
The word service in this context means any module or API or code at run-time.
Let us go over a couple of examples to get this right in.
Let’s take an online scenario, usual tasks like login, reset password are seen as single things from a customer standpoint and are perfect candidates for Microservices. However, related functionalities like querying the identity management system or printing a message on screen do not qualify as Microservices.
Let’s take an enterprise scenario, regular tasks like reconciling financial systems, updating CRM are pieces of functionality which do not themselves make direct sense from a customer standpoint and cannot be Microservices. However, related functionalities like onboard a customer or transfer funds are seen as single things from a customer standpoint and are good Microservice candidates.