Distributed Persistent Signals: Architecture and Implementation

Tetsuo Kamina, Sota Ueno
2022 Proceedings of the 9th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems  
A signal in reactive programming (RP) is a function of time whose value is updated automatically without performing explicit re-assignments. SignalJ, a Java-based RP language, provides persistent signals, whose update histories constitute time-series data, i.e., a signal is a function of a specified (possibly past) time. These update histories are stored in a time-series database to facilitate the use of persistent signals in an open, distributed setting. However, currently SignalJ is only used
more » ... in local systems, and there are several obstacles to making it applicable to distributed systems. In this study, we address this problem by proposing a distributed architecture for the SignalJ runtime platform. This architecture includes an ID resolver that makes persistent signals location-transparent and supports a distributed update propagation mechanism that makes distributed time-series data consistent. We realize this architecture by extending the Sig-nalJ compiler and its runtime library as well as providing an add-on to the time-series database. The effectiveness of this architecture is demonstrated by implementing a simple IoT application using this extension. CCS Concepts: • Software and its engineering → Distributed programming languages; Data flow languages.
doi:10.1145/3563837.3568341 fatcat:3t6wylyfjrhblcuiwxrexgeuzi