Deep Dive talk | Resilience in Microservices with Congestion Control: Mourjo Sen
Unchecked traffic congestion can render our microservices unresponsive, driving away customers – we do not want our users to ever see an HTTP 503. So, how do we (a) detect congestion before it breaks end-user experience and (b) recover from congestion? To make congestion detection and mitigation resilient and scalable, we must also be able to do it with local measurements inside our application. Microservices are sandwiched between two pieces of the congestion problem: (a) users may start making too many requests and (b) services we depend on may become slow. Either of these scenarios can cause a traffic congestion. We want to detect this and gracefully degrade our quality of service to allow users to know what is going on, instead of an unexplained HTTP 503 status. In this talk, I will explain how we can build resilient micro services with built-in congestion control mechanisms. I will use a sample Java Spring Boot application to demonstrate the effect of congestion building up and illustrate how we can detect and react to it. All of this will be done with simple local measurements to ensure stability and resilience.




