Tackling the Awkward Squad for Reactive Programming: The Actor-Reactor Model

06/21/2023
by   Sam Van den Vonder, et al.
0

Reactive programming is a programming paradigm whereby programs are internally represented by a dependency graph, which is used to automatically (re)compute parts of a program whenever its input changes. In practice reactive programming can only be used for some parts of an application: a reactive program is usually embedded in an application that is still written in ordinary imperative languages such as JavaScript or Scala. In this paper we investigate this embedding and we distill "the awkward squad for reactive programming" as 3 concerns that are essential for real-world software development, but that do not fit within reactive programming. They are related to long lasting computations, side-effects, and the coordination between imperative and reactive code. To solve these issues we design a new programming model called the Actor-Reactor Model in which programs are split up in a number of actors and reactors. Actors and reactors enforce a strict separation of imperative and reactive code, and they can be composed via a number of composition operators that make use of data streams. We demonstrate the model via our own implementation in a language called Stella.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/18/2022

Topology-Level Reactivity in Distributed Reactive Programs: Reactive Acquaintance Management using Flocks

Reactive programming is a popular paradigm to program event-driven appli...
research
08/28/2020

Smoothly Navigating between Functional Reactive Programming and Actors

We formally define an elegant multi-paradigm unification of Functional R...
research
02/14/2020

Gavial: Programming the web with multi-tier FRP

Developing web applications requires dealing with their distributed natu...
research
01/06/2023

High-Performance Deterministic Concurrency using Lingua Franca

Actor frameworks and similar reactive programming techniques are widely ...
research
10/30/2020

Advanced Join Patterns for the Actor Model based on CEP Techniques

Context: Actor-based programming languages offer many essential features...
research
01/19/2023

OblivIO: Securing reactive programs by oblivious execution with bounded traffic overheads

Traffic analysis attacks remain a significant problem for online securit...
research
09/09/2014

Reactive Programming for Interactive Graphics

One of the big challenges of developing interactive statistical applicat...

Please sign up or login with your details

Forgot password? Click here to reset