/xsystem

Building Blocks for XState-based Actor Systems.

Primary LanguageTypeScriptMIT LicenseMIT

XSystem

GitHub issues latest release dependencies

Building Blocks for XState-based Actor Systems.

This package aims to extend the actor concepts that are present in XState and provide "plug 'n play" components. These come in the form of ready-to-use behavior, composable higher-order behavior, and utility functions.

At its core, XSystem provides mechanisms for actors to subscribe to events from other actors. An actor is able to publish events to all subscribers. Natively in XState, actors are only able to subscribe to state changes of another actor.

Installation

XSystem has a peer dependency to XState, which has to be installed as well.

npm i xstate xsystem

Documentation

All features that are available in XSystem are documented in the wiki of this repository.

This package is spearheading actor-system concepts for the XState community. Based on community feedback and new developments in XState, the functionality provided in XSystem is open to change as the community settles on best practices around actor systems. These might also include radical changes when it significantly improves the developer experience.

Related Work

Similar concepts for XState are explored by the following packages:

License

This project is published under the MIT license. All contributions are welcome.