3 ms·
Show HN: Open sourcing a data flow engine for Clojure/Script
- sundbry 7y agoVery neat. Looks like something similar to a lightweight Onyx. Can it handle async event handlers in this version?
- yogthos 7y agoThe event handlers are expected to be synchronous at the moment to ensure that they are executed in their desired order. The event execution is also handled transactionally so each run through the engine will block until it's complete. The goal for the library is primarily to provide a way to organized the business logic. One example use would be hooking it up to re-frame. Re-frame events can feed inputs into Domino, and it will run through the event graph and produce a new state for the re-frame db. Another use case is to use Domino as a state machine on a server. You can hook up HTTP endpoints as inputs, run through the events to decide what actions need to be performed, and then dispatch effects to handle HTTP responses, and so on.
- yogthos 7y agoadded an example using Domino with re-frame https://github.com/domino-clj/examples/blob/master/domino-re-frame-example/src/domino_re_frame_example/core.cljs https://github.com/domino-clj/examples/blob/master/domino-re...
- notduncansmith 7y agoI had a similar vision for this project: https://github.com/notduncansmith/factfold https://github.com/notduncansmith/factfold I mostly focus on building simpler things than this needs in my spare time, but I've worked on projects where a good dataflow library would have spared quite the headache.
- thom 7y agoThis could be cool, I was sad when nothing came of the old dataflow project in Clojure contrib. Readers might also be interested in: https://github.com/sixthnormal/clj-3df https://github.com/sixthnormal/clj-3df Which offers Datalog queries that deliver you fast, minimal diffs of data upon updates from external sources (e.g. Kafka). Build on differential dataflow, which is very cool.