Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
117 tokens/sec
GPT-4o
8 tokens/sec
Gemini 2.5 Pro Pro
47 tokens/sec
o3 Pro
5 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Behaviorally Typed State Machines in TypeScript for Heterogeneous Swarms (2306.09068v1)

Published 15 Jun 2023 in cs.DC

Abstract: 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: https://github.com/Actyx/machines

Definition Search Book Streamline Icon: https://streamlinehq.com
References (13)
  1. Actyx AG. 2020-2022. Actyx developer website. https://developer.actyx.com accessed 2023-05-18.
  2. Actyx AG. 2020–2023a. Actyx Pond library. https://www.npmjs.com/package/@actyx/pond/v/3.4.0
  3. Actyx AG. 2023b. @actyx/machine-check library. https://www.npmjs.com/package/@actyx/machine-check/v/0.2.0
  4. Actyx AG. 2023c. @actyx/machine-runner library. https://www.npmjs.com/package/@actyx/machine-runner/v/0.3.1
  5. Impossibility of Distributed Consensus with One Faulty Process. J. ACM 32, 2 (apr 1985), 374–382. https://doi.org/10.1145/3149.214121
  6. Seth Gilbert and Nancy Lynch. 2002. Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News 33, 2 (June 2002), 51–59. https://doi.org/10.1145/564585.564601
  7. Roland Kuhn. 2021. Local-First Cooperation. https://www.infoq.com/articles/local-first-cooperation/
  8. Behavioural Types for Local-First Software. arXiv:2305.04848 [cs.DC] To appear in ECOOP.
  9. Leslie Lamport. 2019. Time, Clocks, and the Ordering of Events in a Distributed System. Association for Computing Machinery, New York, NY, USA, 179–196. https://doi.org/10.1145/3335772.3335934
  10. R. A. Light. 2017. Mosquitto: server and client implementation of the MQTT protocol. The Journal of Open Source Software 2, 13 (2017). https://doi.org/10.21105/joss.00265
  11. Microsoft. 2012-2023. TypeScript: JavaScript with Syntax for Types. https://www.typescriptlang.org/
  12. STATELY. 2023. XState website. https://xstate.js.org/docs/ accessed 2023-05-18.
  13. Lewis Tseng. 2019. Eventual Consensus: Applications to Storage and Blockchain. In 2019 57th Annual Allerton Conference on Communication, Control, and Computing (Allerton). 840–846. https://doi.org/10.1109/ALLERTON.2019.8919675

Summary

We haven't generated a summary for this paper yet.