This looks really promising! Could you provide at a high-level what this aims to offer over FoundationDB's RecordLayer[1]?<p>[1] <a href="https://github.com/FoundationDB/fdb-record-layer" rel="nofollow">https://github.com/FoundationDB/fdb-record-layer</a>
Great work! The ideas are intriguing. I want to know more about the quering approach. How is it better than SQL or other document quering representations? What is a <i>concurrent data flow virtual machine</i> ?<p>What is the contract to make this layer talk with the underlying stores (say, POSTGRES)?<p>Just want to pick your brain on these topics. Thanks :)
This is great! Can you implement a data-changed event stream like the RethinkDB changefeed and Firebase triggers?<p><a href="https://rethinkdb.com/docs/changefeeds/javascript/" rel="nofollow">https://rethinkdb.com/docs/changefeeds/javascript/</a><p><a href="https://firebase.google.com/docs/functions/database-events" rel="nofollow">https://firebase.google.com/docs/functions/database-events</a><p>This functionality is critical for writing web apps that reflect the current state when multiple users are collaborating on the same data.<p>I've been down the road many times of starting with a POST-style request/response website, only to find that it inevitably needs a realtime event feed over WebSocket to show notifications or otherwise update the view when another user changes some data. I can't stress this enough, but, IMHO a database that doesn't have this doesn't really have anything. And most databases don't have this.<p>If that's too ambitious, another option would be filters and/or callback hooks on the server. That way a process would be notified when something was trying to be changed, or had been changed. Then the user could append events containing the data identifier/path onto their own WebSocket manually. Apologies if you've already implemented this and I just haven't read the documentation.<p>Another rather selfish ask for myself would be a transpiler from SQL to your RefineASM DSL. Being able to go the other way would be pretty awesome too. I'd love to design queries using sets and be able to generate the SQL without having to deal with SQL's quirks since it's so old.
Nice work! Been playing with this idea for a while to write something like this (in Rust); now you did a lot of the heavy lifting for what I would need already.
This looks really cool!<p>Perhaps you should show some nontrivial examples of (read) queries in RefineASM.<p>Also, what are your plans (if any) for non primary indexing? Storage plans seem like a good fit, but will you transform RefineASM to maintain the indexes or what? What about using the indexes?
Love the concept, I'm targeting foundationDB for a project but i don't want to use it for local development and some deployments.<p>I'll explore targeting this with my repository implementation to save some complexity.