September 20th, 2024

Reactive Relational Algebra

The author explores reactive relational algebra to enhance spreadsheet functionalities, using a time-indexed approach for asynchronous operations and self-referential tables for memory management, inviting feedback on their findings.

Read original articleLink Icon
FrustrationCuriosityEnthusiasm
Reactive Relational Algebra

The author reflects on their exploration of reactive relational algebra, expressing a sense of skepticism about its origins in computer science. They are attempting to create improved spreadsheet functionalities by utilizing derived tables akin to database views, particularly focusing on asynchronous data operations. The author introduces a time-indexed approach inspired by functional reactive programming, aiming to model concurrent asynchronous database operations. They find that using self-referential tables simplifies the process of managing memory in their async spreadsheets. The author shares their findings on self-unioning and self-intersecting sets, noting that these operations intuitively lead to predictable outcomes. They also highlight the expressive power of relational algebra, demonstrating how it can be used to derive specific records from datasets. The author concludes their exploration of reactive relational algebra, inviting feedback and ideas for future developments.

- The author is exploring reactive relational algebra to enhance spreadsheet functionalities.

- They utilize a time-indexed approach to model asynchronous database operations.

- Self-referential tables are used to simplify memory management in async spreadsheets.

- The author emphasizes the intuitive nature of self-unioning and self-intersecting sets.

- They invite feedback on their findings and future directions in this area.

AI: What people are saying
The comments on the article reflect a mix of feedback and suggestions related to the author's exploration of reactive relational algebra.
  • Several commenters recommend related works, such as "Dedalus: Datalog in Time and Space" and differential data flow, indicating interest in similar concepts.
  • There are critiques regarding the practical implications of the proposed methods, particularly concerning asynchronous operations and their relationship with traditional database systems.
  • Some users express appreciation for the blog's approach to engineering decisions, valuing real-time discussions over polished content.
  • Concerns are raised about the technical aspects of the implementation, including the timing of resulting views and the nature of HTTP requests.
  • Overall, the comments highlight a blend of curiosity, critique, and suggestions for further reading in the realm of reactive programming and relational algebra.
Link Icon 10 comments
By @alxmng - 4 months
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.
By @erichocean - 4 months
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

By @bbor - 4 months
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!

By @shae - 4 months
Have you read up on differential data flow? Might be what you want?
By @101010010001 - 4 months
The blog has random dots as a background. Now I see them on every screen.
By @mr_gibbins - 4 months
This is RBAR by any other name.
By @bob1029 - 4 months
Why are the resulting views in the future by exactly 1 time step?
By @dognaptr - 4 months
What kind of jackass modifies the mouse cursor when you visit his website?
By @xkcd1963 - 4 months
HTTP requests, SQL queries is not async, for that matter not even sync.
By @keyboardcaper - 4 months
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.