← Graph

Cidurial

project 10 connections

Experimental Ruby library by Ismael Celis for building reactive web apps around commands rather than controllers or background jobs. A Cidurial app is a Rack app (run on Falcon, fiber-based) with typed command structs, a DSL for command-handler blocks, Phlex page classes that know their own path and can subscribe to commands via pub/sub, and a form/button command-helper that transparently submits commands over Ajax. On page load, the browser opens a long-lived SSE connection; POSTed commands are appended to a store interface and the request immediately returns an empty body. Asynchronous worker fibers claim commands, run handlers, and publish the result into a pub/sub channel; subscribed pages re-render (whole page or DOM fragments) and the rendered HTML is pushed back over SSE using Datastar, which morphs it into the DOM (idiomorph-style). Swappable store/dispatcher interfaces let it integrate directly with Sourced. Hosted on Ismael's GitHub; very early/experimental — not intended for production.

status
active
license
open-source
language
Ruby
about
Cidurial project
Live-coded/demoed throughout the talk.
Cidurial is the implementation of this idea.
project Cidurial
related_to
CQRS concept
Explicitly presented as a CQRS implementation.
project Cidurial
uses
Falcon tool
Cidurial is a Rack app running on the fiber-based Falcon server.
project Cidurial
uses
Datastar tool
Datastar provides the SSE client that morphs server-pushed HTML patches into the DOM.
project Cidurial
uses
Phlex tool
Pages are Ruby classes using Phlex for templating and sub-components.
project Cidurial
uses
Rack tool
A Cidurial app is a Rack app mountable on any Rack server.
project Cidurial
uses
Brotli tool
The Datastar SDK uses Brotli over the SSE connection, achieving >80% compression ratios on HTML.
project Cidurial
uses
Sourced project
Cidurial can swap its built-in command store/dispatcher for Sourced's, integrating the web toolkit with the event-sourcing runtime.
person Ismael Celis
works_on
Cidurial project
Author of the experimental reactive-web library.
role: author

Provenance