Fork me on GitHub

i have just stumbled over factui and finally realized that clara is like reactive dataflow base programming


i am working on 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


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:


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