Microservice is the software development technique which structures an application as a collection of loosely coupled service. Each service is self-contained and should implement a single business capability. Microservice architecture is designed to overcome the challenges, failure, and breakdown of the larger applications. Microservices provides opportunities to add resiliency to the system so that components can handle spikes and errors gracefully. With this, every stakeholder can focus solely on one particular element of an overall application, with their own programming style without concerns about other components. The communication in micro-services can be carried out effortlessly because they are stateless and in the well-defined interface (request and response are independent).