Microservice architecture (MSA) is a style of service-oriented architecture (SOA) in software development. It structures an application as a collection of loosely coupled services – microservices – that communicate through simple APIs.
Microservices are usually processes that are arranged around business capabilities. In car rental, such capabilities can be for example fleet management and booking management.
The key benefits of MSA:
- As the services are small in size, they can be built and owned by small development teams. This facilitates fast and continuous delivery in the development process.
- Each of the microservices can be developed, deployed, maintained, and also scaled independently.
- Error in one service doesn’t necessarily stop the entire application from functioning. Fixing a particular service is generally possible without redeploying the whole application.
- Services can be implemented using different technology stacks (programming languages, databases, etc). Therefore, the developers can choose the most suitable options for the required functionalities.
The critics of the MSA point out different complications in comparison to the monolithic architectures. For example, microservices may form information barriers and moving responsibilities between the services can be more challenging. Also, the development and support of many services can be more complex, especially when they are built using different technologies. Success with MSA depends a lot on the business goals and organisational culture of a company.