DiffTry: Prioritizing Retries
Abstract
_**Abstract**_ **Cloud services rapidly shift towards independentlymanaged microservices architectures. This independence may lead to temporary microservices miscoordination, resulting in overloads and rejections of valuable transactions. This weakness may further be exploited by attackers to launch overload attacks inflicting performance and cost damages.** **Retry operations are a key machinery aiming at overcoming seldom rejections. However, during overload periods they: a) Fail protecting valuable transactions from rejections, and b) Trigger large-scale performance-degrading retry storms.** **We propose simple modifications in retry operations, overcoming these deficiencies by transforming retries into a rejection prioritization mechanism,** _**DiffTry**_ **(Differential Retries). It is based on a simple, lightweight, distributed and stateless design and requires neither overload sensing nor microservices coordination. We develop an analytical model capturing** _**DiffTry**_ **s effectiveness for two services in tandem, then generalize it to networks of services. Our theoretical framework lets practitioners quantify, for a given network, the resulting prioritization and rejection rates, and yields formal guarantees that** _**DiffTry**_ **substantially reduces the impact of both incidental and adversarial orchestrated overloads. We validate these predictions in simulation and on a live Kubernetes deployment, where** _**DiffTry**_ **is a simple dropin service-mesh plugin requiring no application changes; the measured rejection closely matches the analysis.**