Repository logo
 

Versatile event correlation with algebraic effects

Published version
Peer-reviewed

Type

Conference Object

Change log

Authors

Bračevac, Oliver 
Amin, Nada 
Salvaneschi, Guido 
Erdweg, Sebastian 
Eugster, Patrick 

Abstract

jats:p We present the first language design to uniformly express variants of jats:italicn</jats:italic> -way joins over asynchronous event streams from different domains, e.g., stream-relational algebra, event processing, reactive and concurrent programming. We model asynchronous reactive programs and joins in direct style, on top of algebraic effects and handlers. Effect handlers act as modular interpreters of event notifications, enabling fine-grained control abstractions and customizable event matching. Join variants can be considered as cartesian product computations with ”degenerate” control flow, such that unnecessary tuples are not materialized a priori. Based on this computational interpretation, we decompose joins into a generic, naive enumeration procedure of the cartesian product, plus variant-specific extensions, represented in terms of user-supplied effect handlers. Our microbenchmarks validate that this extensible design avoids needless materialization. Alongside a formal semantics for joining and prototypes in Koka and multicore OCaml, we contribute a systematic comparison of the covered domains and features. </jats:p>

Description

Keywords

46 Information and Computing Sciences, 4609 Information Systems

Journal Title

Proceedings of the ACM on Programming Languages

Conference Name

ICFP

Journal ISSN

2475-1421
2475-1421

Volume Title

2

Publisher

Association for Computing Machinery (ACM)
Sponsorship
ERC, Advanced Grant No. 321217 ERC, Consolidator Grant No. 617805 DFG, SFB 1053 DFG, SA 2918/2-1