
Show HN: Open sourcing a data flow engine for Clojure/Script - yogthos
https://domino-clj.github.io/
======
thom
This 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.

------
sundbry
Very neat. Looks like something similar to a lightweight Onyx. Can it handle
async event handlers in this version?

~~~
yogthos
The 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
added an example using Domino with re-frame [https://github.com/domino-
clj/examples/blob/master/domino-re...](https://github.com/domino-
clj/examples/blob/master/domino-re-frame-
example/src/domino_re_frame_example/core.cljs)

