Microservices are architectural style in which large & complex software applications are composed of one or more smaller services.
Microservices are design principles for an application
- Loosely Coupled: The microservices are not tightly dependent on each other
- Small & Focused: Each microservice focus on smaller & single task
- Language Neutral: One microservice can be written in JAVA for performance benefits and other in Python for quicker deployment
- Bounded Context: One microservice need not understand other microservices implementation
- Lowered learning curve: No. of lines of code would be lesser and easier to understand services one by one
- Scale bottlenecks: When the load increases the services count can be increased to handle multiple requests
- Quicker user acceptance testing: Every microservice can be tested quickly since it is focused only on one smaller component of the entire software system
- Quick to market changes: Changes can be integrated to the services faster when compared to the monolithic approach
- Business Alignment: With the above factors microservices can adapt to the newer business requirement easily