A program is deterministic if multiple re-executions with the same inputs always lead to the same state.
Even concurrent instances of a deterministic program should observe identical behavior—in real time—if assigned the same set of inputs.
In this work, we propose real-time reproducibility for distributed programs.
Multiple instances of the same interactive application can broadcast asynchronous inputs and yet conform to identical behavior.
Collaborative networked applications, such as watch parties, document editing, and video games can benefit from this approach.
We name this class of applications as symmetric distributed applications.
Using a standard event-driven API to wait and emit events, programmers write code as if the application executes in a single machine.
Our middleware intercepts event generation and synchronizes all instances in a consistent timeline so that receipt is identically reproducible.
Not only distributed applications benefit from consistency and determinism but also development and testing can be done in a single instance with the same guarantees.
In our experiments, the middleware can handle applications with 25 FPS, distributed in up to 25 nodes over the Internet, with an event latency below 350ms.
Mon 18 OctDisplayed time zone: Central Time (US & Canada) change
13:50 - 15:10 | |||
13:50 25mTalk | Trampoline Variables: A General Method for State Accumulation in Reactive Programming REBLS Bjarno Oeyen Vrije Universiteit Brussel, Sam Van den Vonder Vrije Universiteit Brussel, Wolfgang De Meuter Vrije Universiteit Brussel DOI Pre-print | ||
14:15 25mTalk | Symmetric Distributed Applications REBLS Francisco Sant'Anna Rio de Janeiro State University, Rodrigo Santos Microsoft, Noemi Rodriguez PUC-Rio DOI | ||
14:40 25mTalk | Analysing the Performance and Costs of Reactive Programming Libraries in Java REBLS Julien Ponge Red Hat, Arthur Navarro Red Hat, Clément Escoffier Red Hat, Frédéric Le Mouël University of Lyon; INSA Lyon; Inria; CITI DOI |