Consistent Distributed Reactive Programming with Retroactive Computation

Context Many systems require receiving data from multiple information sources, which act as distributed network devices that asynchronously send the latest data at their own pace to generalize various kinds of devices and connections, known as the Internet of Things (IoT).These systems often perform computations both reactively and retroactively on information received from the sources for monitoring and analytical purposes, respectively.Inquiry It is challenging to design a programming language that can describe such systems at a high level of abstraction for two reasons: (1) reactive and retroactive computations in these systems are performed alongside the execution of other application logic; and (2) information sources may be distributed, and data from these sources may arrive late or be lost entirely.Addressing these difficulties is our fundamental problem.Approach We propose a programming language that supports the following features.First, our language incorporates reactive time-varying values (also known as signals) embedded within an imperative language.Second, it supports multiple information sources that are distributed and represented as signals, meaning they can be declaratively composed to form other time-varying values.Finally, it allows computation over past values collected from information sources and recovery from inconsistency caused by packet loss.To address the aforementioned difficulties, we develop a core calculus for this proposed language.Knowledge This calculus is a hybrid of reactive/retroactive computations and imperative ones.Because of this hybrid nature, the calculus is inherently complex; however, we have simplified it as much as possible.First, its semantics are modeled as a simple, single-threaded abstraction based on typeless object calculus.Meanwhile, reactive computations that execute in parallel are modeled using a simple process calculus and are integrated with the object calculus, ensuring that the computation results are always serialized.Specifically, we show that time consistency is guaranteed in the calculus; in other words, consistency can be recovered at any checkpoint.Grounding This work is supported by formally stating and proving theorems regarding time consistency.We also conducted a microbenchmarking experiment to demonstrate that the implemented recovery process is feasible in our assumed application scenarios.Importance The ensured time consistency provides a rigorous foundation for performing analytics on computation results obtained from distributed information sources, even when these sources experience delays or packet loss.

Authors

Institutions

Publication Details

Journal
The Art Science and Engineering of Programming
Published
2025-02-15
DOI
https://doi.org/10.22152/programming-journal.org/2025/10/11
Primary Topic
Logic, Reasoning, and Knowledge
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Consistent Distributed Reactive Programming with Retroactive Computation

Tomoyuki Aotani, Hidehiko Masuhara, Tetsuo Kamina
The Art Science and Engineering of Programming
Logic, Reasoning, and Knowledge
article

Consistent Distributed Reactive Programming with Retroactive Computation

Tomoyuki Aotani, Hidehiko Masuhara, Tetsuo Kamina
article en

Abstract

Context Many systems require receiving data from multiple information sources, which act as distributed network devices that asynchronously send the latest data at their own pace to generalize various kinds of devices and connections, known as the Internet of Things (IoT).These systems often perform computations both reactively and retroactively on information received from the sources for monitoring and analytical purposes, respectively.Inquiry It is challenging to design a programming language that can describe such systems at a high level of abstraction for two reasons: (1) reactive and retroactive computations in these systems are performed alongside the execution of other application logic; and (2) information sources may be distributed, and data from these sources may arrive late or be lost entirely.Addressing these difficulties is our fundamental problem.Approach We propose a programming language that supports the following features.First, our language incorporates reactive time-varying values (also known as signals) embedded within an imperative language.Second, it supports multiple information sources that are distributed and represented as signals, meaning they can be declaratively composed to form other time-varying values.Finally, it allows computation over past values collected from information sources and recovery from inconsistency caused by packet loss.To address the aforementioned difficulties, we develop a core calculus for this proposed language.Knowledge This calculus is a hybrid of reactive/retroactive computations and imperative ones.Because of this hybrid nature, the calculus is inherently complex; however, we have simplified it as much as possible.First, its semantics are modeled as a simple, single-threaded abstraction based on typeless object calculus.Meanwhile, reactive computations that execute in parallel are modeled using a simple process calculus and are integrated with the object calculus, ensuring that the computation results are always serialized.Specifically, we show that time consistency is guaranteed in the calculus; in other words, consistency can be recovered at any checkpoint.Grounding This work is supported by formally stating and proving theorems regarding time consistency.We also conducted a microbenchmarking experiment to demonstrate that the implemented recovery process is feasible in our assumed application scenarios.Importance The ensured time consistency provides a rigorous foundation for performing analytics on computation results obtained from distributed information sources, even when these sources experience delays or packet loss.

The Art Science and Engineering of ProgrammingVol. 10(1)
Oita University (JP), Institute of Science Tokyo (JP), Sanyo-Onoda City University (JP)
Openalex Percentile: Top 98%
Logic, Reasoning, and Knowledge
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.