Microservices are the most popular software design patterns for making very performant and scalable backend services. Rather than building one service for an entire application, multiple loosely coupled services are created, with each being responsible for a single feature. Depending on the load on features, each service can be scaled up or down individually. Consequently, while designing microservices, the choice of the threading model you use becomes very important.
Microservices can be stateless or stateful. The choice between stateless and stateful does have an impact on performance. With stateless services, the requests can be served in any order without regard to what happened before or after the current request, whereas with stateful services, all the requests should be processed in a particular order, like a...