Consistent Updates for Scalable Microservices (2508.04829v1)
Abstract: Online services are commonly implemented with a scalable microservice architecture, where isomorphic worker processes service client requests, recording persistent state in a backend data store. To maintain service, any modifications to the service functionality must be made on the fly -- i.e., as the service continues to process client requests -- but doing so is challenging. The central difficulty is that of avoiding potential inconsistencies caused by ''mixed mode'' operation, where workers of current and new versions are concurrently active and interact via the data store. Some update methods avoid mixed mode altogether, but only at the cost of substantial inefficiency -- by doubling resources (memory and compute), or by halving throughput. The alternative is a so-called ''rolling'' update, which is uncontrolled and runs the risk of serious service failures arising from inconsistent mixed-mode behavior. In this paper, we present the first algorithms that guarantee consistency for mixed mode updates. The algorithms rely on semantic properties of service actions, such as commutativity. We show that semantic awareness is required, by proving that any semantically oblivious, mixed-mode update method cannot avoid inconsistencies. Ideally, it should appear to every client that a service update takes effect atomically; this ensures that a client is not exposed to inconsistent mixed-mode behavior. We introduce a framework that formalizes this intuition and develop foundational theory for reasoning about the consistency of mixed-mode updates, applying that theory to derive the new algorithms and establish their correctness.