Behaviorally Typed State Machines in TypeScript for Heterogeneous Swarms

by   Roland Kuhn, et al.

A heterogeneous swarm system is a distributed system where participants come and go, communication topology may change at any time, data replication is asynchronous and partial, and local agents behave differently between nodes. These systems are hard to design and reason about, mainly because we desire a particular class of behaviors to emerge from the interplay of heterogeneous individual agents. Nevertheless, mission-critical operations like manufacturing process orchestration in factories use such systems due to their uncompromising availability and resilience of computing services. This paper presents a set of TypeScript libraries to model peer-to-peer workflows as state machines, execute them using the Actyx middleware, and check the shape of these machines for conformance to a swarm protocol. The swarm protocol describes an idealized global view of the cooperation of machines of different roles. It directly corresponds to a diagram a product manager would sketch on a whiteboard; this allows for verifying that the coded state machines correctly implement the product specification. A well-formed swarm protocol also guarantees that conforming machines will achieve eventual consensus on the overall state progression even in the absence of further coordination. This tool is for developers of business logic for heterogeneous swarm systems, helping them verify that their protocols and implementations are correct. Tool repo:


page 1

page 2

page 3

page 4


Behavioural Types for Local-First Software

Peer-to-peer systems are the most resilient form of distributed computin...

A Domain Specific Language for Testing Consensus Implementations

Large-scale, fault-tolerant, distributed systems are the backbone for ma...

Specification and Runtime Checking of Derecho, A Protocol for Fast Replication for Cloud Services

Reliable distributed systems require replication and consensus among dis...

TangleSim: An Agent-based, Modular Simulator for DAG-based Distributed Ledger Technologies

DAG-based DLTs allow for parallel, asynchronous writing access to a ledg...

Rafting Towards Consensus: Formation Control of Distributed Dynamical Systems

In this paper, we introduce a novel adaptation of the Raft consensus alg...

Can 100 Machines Agree?

Agreement protocols have been typically deployed at small scale, e.g., u...

Heterogeneous download times in bandwidth-homogeneous BitTorrent swarms

Modeling and understanding BitTorrent (BT) dynamics is a recurrent resea...

Please sign up or login with your details

Forgot password? Click here to reset