This is one of the demos included in the Datastar SDK for Common Lisp I've been working on. The ideas behind it are also present in the interactive guide here https://lambda-combine.net/hyper-guide - essentially a complement to the Datastar guide in Common Lisp.
This demo specifically shows Datastar being used, with multiple POST commands and one single GET stream - CQRS, as per the Datastar Tao - plus a persistent store using BKNR datastore. The map is based on SVG, which uses morph ("fat" or perhaps with a slightly above average BMI) for updates.
The work around this led me to places I didn't necessarily expect, but a side-effect is that I made a Brotli library for Common Lisp (https://lambda-combine.net/cl-brotli), and the SSE library has support for something I added to Woo (perhaps poorly, but I'll follow that up upstream) to support user channels, and thus allow the event pool to be used for CQRS; in short, making it possible to use Clack+Woo with notifications without blocking the event loop.
This is all WIP in the sense that needs to be tested more. If it breaks, I'll fix it, or do my best at it.
Hope you find it interesting though. I'm out driving down to the Algarve for holidays in hours, so apologies if any possible questions are left unanswered more than they should, I wanted to get this out there since I was in a perpetual improvement loop.
fsmunoz•1h ago
This demo specifically shows Datastar being used, with multiple POST commands and one single GET stream - CQRS, as per the Datastar Tao - plus a persistent store using BKNR datastore. The map is based on SVG, which uses morph ("fat" or perhaps with a slightly above average BMI) for updates.
The work around this led me to places I didn't necessarily expect, but a side-effect is that I made a Brotli library for Common Lisp (https://lambda-combine.net/cl-brotli), and the SSE library has support for something I added to Woo (perhaps poorly, but I'll follow that up upstream) to support user channels, and thus allow the event pool to be used for CQRS; in short, making it possible to use Clack+Woo with notifications without blocking the event loop.
This is all WIP in the sense that needs to be tested more. If it breaks, I'll fix it, or do my best at it.
Hope you find it interesting though. I'm out driving down to the Algarve for holidays in hours, so apologies if any possible questions are left unanswered more than they should, I wanted to get this out there since I was in a perpetual improvement loop.