Microservices are design patterns, a variant of the service-oriented architecture (SOA) architectural style, structures an application as a collection of loosely coupled independent services. In a microservices architecture, services are fine-grained and uses lightweight protocols.
The advantage of decomposing an application into smaller services is to improve modularity, enables the application easier to understand, develop, test, and become more resilient to architecture erosion. It helps to parallelize development by enabling different teams to develop, deploy and scale its respective services/modules independently.
It also allows the architecture of an individual service to emerge through continuous refactoring. Microservices-based architectures enable continuous delivery and deployment.