Microservices or microservice architecture is the way to develop a system as a set of small services. Let’s explain it in the example of an Internet bookstore. In this Internet bookstore we have different functionalities: customer management, order workflow, books database, etc. There can be many such functionalities and each of them might be a separate service. So, instead of having one heavyweight application with all functionalities, you have many functional entities delivered as lightweight microservices. They can be developed, tested, deployed and maintained independently. Therefore microservice architecture speeds up the delivery of even the most complex software. Just as importantly, they can be scaled separately—that is, more computing resources can be assigned to a user login app when you expect more orders. Moreover, a new microservices-based application can be developed immediately and independently (e.g. in response to new business needs or opportunities), without affecting the lifecycle or release schedule of existing services. Such a use case is frequently seen and in a monolithic system usually delays the delivery plan.