Check out the paper "Dedalus: Datalog in Time and Space". It formalizes a Datalog to include time, specifically to handle async behavior. It explores exactly what you seem to be doing here.
The author seems to miss that relational algebra was developed for the needs of the databases of the time, i.e. in an effort to optimize reads off spinning iron. Any effort for async is destroyed by blocking fs syscalls.
LOVE this. If anyone knows similar blogs that run through engineering decisions in real time, please share! Way more useful than a polished long post built for SEO and hackernews domination.
Substantively, I don’t have much to say other than building math into the core of innovative programs should be a more common practice than it is. Not necessarily as a part of the code, but rather the design, documentation, and sometimes even the user copy. Math has stood the test of time (200y +/- 10,000y) for good reason!
Check out the paper "Dedalus: Datalog in Time and Space". It formalizes a Datalog to include time, specifically to handle async behavior. It explores exactly what you seem to be doing here.
Peter Alvaro gave a great presentation on Dedalus at Strange Loop 2015.
https://www.youtube.com/watch?v=R2Aa4PivG0g
Have you read up on differential data flow? Might be what you want?
The author seems to miss that relational algebra was developed for the needs of the databases of the time, i.e. in an effort to optimize reads off spinning iron. Any effort for async is destroyed by blocking fs syscalls.
Relational algebra has nothing to do with disks.
If you enjoy FRP-related stuff, Missionary[0] (in Clojure) is doing some really great work.
Most people discover it through Electric Clojure.[1]
The Missionary author has some really good talks he's done up on YouTube about it.
[0] https://github.com/leonoel/missionary
[1] https://github.com/hyperfiddle/electric
Also in Clojure, and reactive, and relational: https://github.com/wotbrew/relic
> Functional relational programming for Clojure(Script).
And someone built a spreadsheet with Electric Clojure
https://github.com/lumberdev/tesserae
What are the YouTube talks? Did you have a specific one in mind?
This is RBAR by any other name.
LOVE this. If anyone knows similar blogs that run through engineering decisions in real time, please share! Way more useful than a polished long post built for SEO and hackernews domination.
Substantively, I don’t have much to say other than building math into the core of innovative programs should be a more common practice than it is. Not necessarily as a part of the code, but rather the design, documentation, and sometimes even the user copy. Math has stood the test of time (200y +/- 10,000y) for good reason!
Why are the resulting views in the future by exactly 1 time step?
There's exactly one async operation between them.
Like big O notation probably? So some constant time that does not depend on the size of the tables.
HTTP requests, SQL queries is not async, for that matter not even sync.