Swim: A Runtime for Distributed Event-Driven Applications
Chris Sachs, Ajay Govindarajan, Simon Crosby

TL;DR
Swim introduces a runtime system extending the actor model for distributed, event-driven applications that analyze real-time data streams with dynamic, adaptive dataflow graphs using CRDTs for state consistency.
Contribution
It presents a novel distributed runtime for event-driven applications that dynamically constructs and updates dataflow graphs of linked actors using CRDTs for state synchronization.
Findings
Supports millions of event sources in real-time
Enables dynamic graph reconfiguration based on data analysis
Achieves resource-efficient, in-sync real-world analysis
Abstract
Swim extends the actor model to support applications composed of linked distributed actors that continuously analyze boundless streams of events from millions of sources, to respond in-sync with the real-world. Swim builds a running application from streaming events, creating a distributed dataflow graph of linked, stateful, concurrent streaming actors that is overlaid on a mesh of runtime instances. Streaming actors are vertices in the dataflow graph that concurrently analyze new events and modify their states. A link is an edge in the graph and is a URI binding to an actor's streaming API. The Swim runtime streams every actor state change over its links to other (possibly remote) actors using op-based CRDTs that asynchronously update remotely cached actor state replicas. This frees local actors to compute at any time, using the latest replicas of remote state. Actors evaluate…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsScientific Computing and Data Management · Cloud Computing and Resource Management · Software System Performance and Reliability
