Skip to content

danderson00/xest

Repository files navigation

xest

Modern Reactive Programming

What is it?

On the surface, xest is an event sourcing database with bindings for popular UI frameworks. It stores and indexes published messages and allows efficient querying of those messages using a query language heavily inspired by ReactiveX. Its UI bindings allow simple, component level access to the event store and intuitive "scoping" of queries. It even comes with a query analyzer!

Digging a little deeper, xest represents a fundamental shift in the way we model data in our applications. By swapping the fundamental unit of data from SQL tables or NoSQL documents to messages or events, a number of benefits become apparent.

  • Queries are inherently real-time. All of them, all the time.
  • Vastly less complexity and code. No boilerplate. Persistence just happens.
  • Workflows and processes can be modelled visually.
  • Everything starts to become "declarative".
  • The entire history of every action taken in the system is available for analysis.

xest enables all this by providing:

  • a lightweight "run anywhere" host and low configuration consumer,
  • a simple core expression language focused on extensibility and reuse,
  • higher order components and hooks for React (more frameworks coming),
  • workflows and processes built on the xstate library (coming soon!),
  • out of the box authentication providers.

A Glimpse...

Vocabulary Component

Simple but powerful query language heavily inspired by Rx, and simple React bindings that keep your UI up to date

State machine

Model workflows visually using xstate tools

Documentation

For newcomers, both reactive programming noobs and Rx afficionados, we recommend running through the getting started guide (video tutorial coming soon!)

To get up and running quickly, follow the instructions in the bundle documentation.

API documentation is available on the documentation site.

Packages

@xest/bundle Host process and socket framework bundle github npm
@xest/core Core expression language and serialization mechanisms github npm
@xest/devtools Development tools (query runner) github npm
@xest/fsm State machine tools github npm
@xest/host "Run anywhere" host process github npm
@xest/react Higher order components and hooks for React github npm
@x/socket Reliable observable socket framework github npm
@x/socket.auth Authentication middleware for @x/socket github npm
@x/socket.xest @xest/host optimizations as middleware for @x/socket github npm

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published