Microservices are a modern architectural approach to developing applications by breaking them down into small, independent services that can be developed, deployed, and scaled independently. Each microservice is designed to perform a specific business function and communicates with other services through well-defined APIs.
Microservices is a cloud-native architectural pattern that structures an application as a collection of services that are organised around specific business or technical capabilities.
They are usually owned by an in-house small team of developers that independently code, test and deploy its functionality.
They can also be owned by third-party companies providing SaaS solutions, in the form of a Self-Contained System that developers integrate into an existing business solution.
They are loosely coupled, meaning that the different Microservices that compose the solutions are weakly associated to each other. Changes in one service does not necessarily affect other system components.
Services in a loosely coupled system can be replaced with alternative in-house or third party implementations that provide the same set of services and functionality, therefore not tying a business or developer to a particular vendor or technology.
They closely follow the Single Responsibility Principle, which is a software development principle that states that every service in a system should have responsibility over a single business or technical concern.
There are many other advantages in adopting a Microservices architecture, including enabling development teams to efficiently and repeatedly deliver large applications, and business to adopt best-in-class SaaS solutions while avoiding vendor lock-in.