Prova de Doutoramento do aluno João Ferreira Loff

Área: Engenharia Informática e de Computadores

Despacho de nomeação de Júri

Edital

Título da Tese: Cross-Service Consistency for Large-Scale Microservice Applications

Local da Prova:  Anfiteatro PA-3 (Piso -1 do Pavilhão de Matemática) do IST

Data: 21/01/2026

Hora: 14h00
Abstract: Modern internet-scale applications suffer from cross-service inconsistencies, arising because applications combine multiple independent and mutually-oblivious datastores. The end-to-end execution flow of each user request spans many different services and datastores along the way, implicitly establishing a causal ordering between operations to different datastores. In today's systems, each datastore implements its own consistency model; there is no systemic coordination between datastores when replicating updates; and no service has global knowledge of all datastore interactions of the end-to-end request. Consequently, existing systems can neither observe cross-service consistency violations nor enforce a visibility ordering upon reading, exposing end-users to inconsistent outputs. In this work, we aim to prevent cross-service inconsistencies in distributed applications. Achieving this goal in a practical way raises challenges at the level of the semantics, scalability, and ease of deployment of the resulting system, none of which are met by current approaches. We propose two contrasting approaches to correct cross-service inconsistencies, which we named Antipode and Pluribus. At a high level, Antipode relies on explicit dependency tracking and dependency enforcement, making the developer a key stakeholder in the process of ensuring cross-service causal consistency, whereas Pluribus dispenses with developer knowledge by tracking and enforcing dependencies implicitly, at each read and write operation. Despite contrasting, both approaches solve cross-service inconsistencies by bringing in a series of technical contributions to address fundamental semantic, scalability, and deployment challenges. Specifically, Antipode proposes a bolt-on technique to prevent cross-service consistency violations in distributed applications. It enforces cross-service consistency by propagating lineages of datastore operations both alongside end-to-end requests and within datastores, by aggregating them into a coarse-grained entity called lineages — which enables a novel cross-service consistency model. We have implemented Antipode as an application-level library, which can easily be integrated with existing applications with minimal effort, is incrementally deployable, and does not require global knowledge of all datastore operations. We integrate Antipode with eight open-source and public cloud datastores and two microservice benchmark applications. Our evaluation shows that Antipode effectively prevents cross-service inconsistencies while reducing programming effort and maintaining minimal impact on end-user latency and throughput. In turn, Pluribus departs from the developer-centric approach by transparently enforcing causal cross-service dependencies across multiple datastores. Our approach involves upgrading existing datastores — also in a bolt-on way — with a common metadata structure that feeds into a new cross-service consistency protocol specifically designed to implicitly share, track, and enforce cross-service causal dependencies. In order to address the scalability challenges of a common layer across multiple datastores, Pluribus compresses causal metadata into a single scalar, uses loosely synchronized physical clocks for timestamping events, and resorts to a global stabilization mechanism. Our evaluation shows that Pluribus effectively prevents cross-service inconsistencies with minimal impact on end-user latency and throughput, while only moderately affecting the datastore's remote update visibility.

Tópicos: