Readit News logoReadit News
aboodman commented on Materialized views are obviously useful   sophiebits.com/2025/08/22... · Posted by u/gz09
aboodman · 10 hours ago
FYI, Zero uses incremental view maintenance internally as the core of its sync engine:

https://zero.rocicorp.dev/docs/introduction

IVM is what allows the core feature of our DX: that users can just do a fairly large query with sorts and joins, like:

  zero.query.posts.where('authorID', 42)
    .orderBy('created', 'desc')
    .limit(1000)
    .related('comments',
      c => c.orderBy('created', 'desc').limit(10))
... and we sync updates to this query incrementally to the client.

TanStack DB also uses IVM, but only client-side currently.

If you are interested in such things, you can take a poke around the source here: https://github.com/rocicorp/mono/tree/main/packages/zql. Or come find us in Discord: https://discord.rocicorp.dev/

Deleted Comment

aboodman commented on Linear sent me down a local-first rabbit hole   bytemash.net/posts/i-went... · Posted by u/jcusch
petralithic · 17 days ago
ElectricSQL and TanStack DB are great, but I wonder why they focus so much on local first for the web over other platforms, as in, I see mobile being the primary local first use case since you may not always have internet. In contrast, typically if you're using a web browser to any capacity, you'll have internet.

Also the former technologies are local first in theory but without conflict resolution they can break down easily. This has been from my experience making mobile apps that need to be local first, which led me to using CRDTs for that use case.

aboodman · 16 days ago
I think this is a fascinating and deep question, that I ponder often.

I don't feel like I know all the answers, but as the creator of Replicache and Zero here is why I feel a pull to the web and not mobile:

- All the normal reasons the web is great – short feedback loop, no gatekeepers, etc. I just prefer to build for the web.

- The web is where desktop/productivity software happens. I want productivity software that is instant. The web has many, many advantages and is the undisputed home of desktop software now, but ever since we went to the web the interaction performance has tanked. The reason is because all software (including desktop) is client/server now and the latency shows up all over the place. I want to fix that, in particular.

- These systems require deep smarts on the client – they are essentially distributed databases, and they need to run that engine client-side. So there is the question of what language to implement in. You would think that C++/Rust -> WASM would be obvious but there are really significant downsides that pull people to doing more and more in the client's native language. So you often feel like you need to choose one of those native languages to start with. JS has the most reach. It's most at home on the desktop web, but it also reaches mobile via RN.

- For the same reason as prev, the complex productivity apps that are often targeted by sync engines are often themselves written using mainly web tech on mobile. Because they are complex client-side systems and they need to pick a single impl language.

aboodman commented on Linear sent me down a local-first rabbit hole   bytemash.net/posts/i-went... · Posted by u/jcusch
aboodman · 17 days ago
> Using Zero is another option, it has many similarities to Electric, while also directly supporting mutations.

The core differentiator of Zero is actually query-driven sync. We apparently need to make this more clear.

You build your app out of queries. You don't have to decide or configure what to sync up front. You can sync as much, or as little as you want, just by deciding which queries to run.

If Zero does not have the data that it needs on the client, queries automatically fall back to the server. Then that data is synced, and available for next query.

This ends up being really useful for:

- Any reasonably sized app. You can't sync all data to client.

- Fast startup. Most apps have publicly visible views that they want to load fast.

- Permissions. Zero doesn't require you to express your permissions in some separate system, you just use queries.

So the experience of using Zero is actually much closer to a reactive db, something like Convex or RethinkDB ().

Except that it uses standard Postgres, and you also get the instant interactions of a sync engine.

aboodman commented on Final report on Alaska Airlines Flight 1282 in-flight exit door plug separation   ntsb.gov:443/investigatio... · Posted by u/starkparker
ryandrake · a month ago
At the risk of overgeneralizing, more and more in modern life it feels as though we are all surrounded by people who are supposed to do their jobs right who don't, and people who are supposed to inspect their work who aren't inspecting, and people who are supposed to check the inspection process who aren't checking, and a legislative body who's supposed to regulate all the checking and double checking who aren't doing anything at all!

It's like vast swaths of people are just fooling around, collecting a paycheck, but aren't doing what they're supposed to be doing, and we're all just miraculously surviving our day-to-day because a bunch of denominators are very large numbers!

aboodman · a month ago
At the end of the day people have to care about their job, for a reason bigger than getting a paycheck. Society can coast for awhile when people don't care but things eventually break down.

You can add process but the people running the process have to care. You can add regulation, but then the regulators have to care.

At the end of the day people have to care. And it really has to be everyone, because if one group cares and another doesn't, the one that cares will soon get disillusioned.

Caring alone is not sufficient. You do need process to catch mistakes. But process alone is also not sufficient.

aboodman commented on People Keep Inventing Prolly Trees   dolthub.com/blog/2025-06-... · Posted by u/lifty
iamwil · 2 months ago
Anyone know if editing a prolly tree requires reconstructing the entire tree from the leaves again? All the examples I've ever seen in a wild reconstruct from the bottom up. Presumably, you can leave the untouched leaves intact, and the reconstruct parent nodes whose hashes have changed due to the changed leaves. I ended up doing an implementation of this, and wondered if it's of any interest or value to others?
aboodman · 2 months ago
I am confused by this question. Both noms and dolt, and presumably most other prolly tree implementations do what you propose. if they didn't, inserts would be terribly slow.
aboodman commented on People Keep Inventing Prolly Trees   dolthub.com/blog/2025-06-... · Posted by u/lifty
vanderZwan · 2 months ago
> the dat paper

What's the name of the paper you're alluding to? I'm not familiar with it and it sounds interesting

aboodman commented on People Keep Inventing Prolly Trees   dolthub.com/blog/2025-06-... · Posted by u/lifty
compressedgas · 2 months ago
This article does not mention Jumbostore (Kave Eshghi, Mark Lillibridge, Lawrence Wilcock, Guillaume Belrose, and Rycharde Hawkes) which used content defined chunking recursively on the chunk list of a content defined chunked file in 2007. This is exactly what a Prolly Tree is.
aboodman · 2 months ago
I was aware of this kind of structure when I coined 'prolly tree'. It's the same thing bup was doing, which I referenced in our design docs:

https://github.com/attic-labs/noms/blob/master/doc/intro.md#...

The reason I thought a new name was warranted is that a prolly tree stores structured data (a sorted set of k/v pairs, like a b-tree), not blob data. And it has the same interface and utility as a b-tree.

Is it a huge difference? No. A pretty minor adaptation of an existing idea. But still different enough to warrant a different name IMO.

aboodman commented on Making React Fun Again, with Sync [video]   youtube.com/watch?v=SNAHZ... · Posted by u/aboodman
aboodman · 4 months ago
Hey HN, I just presented this at React Miami and thought you might be interested. I built an app with three upcoming sync engines, and they run side-by-side and interoperate. Happy to answer any questions.
aboodman · 4 months ago
The code is also publicly available here:

https://github.com/rocicorp/syncban

aboodman commented on Making React Fun Again, with Sync [video]   youtube.com/watch?v=SNAHZ... · Posted by u/aboodman
aboodman · 4 months ago
Hey HN, I just presented this at React Miami and thought you might be interested. I built an app with three upcoming sync engines, and they run side-by-side and interoperate. Happy to answer any questions.

u/aboodman

KarmaCake day2602August 8, 2008
About
https://twitter.com/aboodman
View Original