hi
i have just stumbled over factui and finally realized that clara is like reactive dataflow base programming
i am working on datahike: https://github.com/replikativ/datahike and am wondering how i would stream datoms properly into clients with factui
one idea would be to make clara's memory durable and do a joint database
so a simple approach would realize the web after tomorrow scenario of @tonsky http://tonsky.me/blog/the-web-after-tomorrow/
on a next step one can introduce CRDTs for intermediary result sets. this would allow local and offline edits in p2p fashion, which can occur with a parallel addition of the fact to the main central database that will acknowledge the intermediary result set
the latter is necessary for the facts to be joinable in a synchronized fashion with other parts of the system. that would yield a very good tradeoff for data driven application development in my opinion
i can provide a durable sorted-map with the hitchhiker tree as a fast and transparent building blog: https://github.com/datacrypt-project/hitchhiker-tree
operations can be done in memory and flushed at distinct points in time
just to be clear the hitchhiker-tree is not from me, but david greenberg, but i have ported it to clojurescript with core.async and have used it to make datascript durable in datahike
i guess i would have to implement IPersistentMemory, IMemoryReader and ITransientMemory for durability, right?
i am not sure whether this makes sense in your opinion, would be nice to chat a bit about how do it right