Live data from Hacker News

Jazz – Apps with Distributed State

jazz.tools

131–140 of 179 posts

Re: Jazz – Apps with Distributed State

#131

It seems to be an InstantDB alternative that integrates more closely with React.

Yes, plus it’s actually local-first (works offline) and you don’t have to trust the syncing & persistence infrastructure because only encrypted edits are synced!

Also you can use it as blog storage as well

Re: Jazz – Apps with Distributed State

#133

Not sure if this question belongs on this post but kinda interested in how validation and e.g data schema enforcement work in local first / distributed infrastructure. Assume this is built into the way you think about the model (and my mental model definitely isn't there yet), but having read the permissions part of the jazz docs (on/off?) and thinking about how client-first platforms like firebase do it with private…

Right now, we're not doing complex validation very well, we basically rely on all clients having the same schema or backwards-compatible schemas and prevent errors at the type level.

But because the schemas are runtime constructs as well, we might be able to do more complex stuff in the future. Basically any rule you can express as a function of (previous history, new transaction) -> is new transaction valid? can be a rule in theory, and each client will verify it in an eventually consistent way.

For the time being, the Group abstraction with it's reader, writer and admin roles, plus composition of CoValues in different groups is sufficient for most permission-like rules, which is what most apps need most of the time.

Let me know if that makes sense

Re: Jazz – Apps with Distributed State

#134
post #132

How do this compare (or differ) to PartyKit?

Partykit is mostly an abstraction on top of Cloudflare Durable Objects and offers simplified Websockets for room-like multiplayer.

Jazz is a framework for building apps around locally mutable collaborative values which are granularly synced (you don't have to worry about data transport or coordinating sync between collaborators, you just set permissions and edit data)

Re: Jazz – Apps with Distributed State

#136

It seems to be an InstantDB alternative that integrates more closely with React.

Yes, plus it’s actually local-first (works offline) and you don’t have to trust the syncing & persistence infrastructure because only encrypted edits are synced! Also you can use it as blog storage as well

Sounds interesting, is it SaaS-only or self-hostable?

Re: Jazz – Apps with Distributed State

#137

Where are the information about the company? I cannot find an About Us, where they are based, etc?

Founder here - we’re working on that page, so far there’s just info on me on https://gcmp.io/team But I was able to hire a couple really good first people recently! We’re based all over Europe. Let me know what else you’d like to know!

Thank you I really appreciate it. As an European, I am trying to use only database/sync services based in Europe using European datacenter. Is it the case for Jazz?

Re: Jazz – Apps with Distributed State

#138

I'm more than a little worried about the following all being `Coming Soon`: - Cursors & carets - Two way sync to your DB - Video presence & calls - both the Group and BinaryCoStreams All of these are the key reasons I would be evaluating this framework to handle my data. All of these are not fully implemented yet. It is these key topics of live reloading/updating data that make or break an app. In my opinion, if you…

Seems like you have lots of real world mobx experience. Have you ever read this article, basically saying that every front end state (including mobx) basically ends up being a worse version of a standard database? https://sqlsync.dev/posts/stop-building-databases/ I ended up finding that article after running into lots of the challenges with mobx State tree. I ended up trying to use watermelondb, a sqlite wrapped for…

I would retort with, stop trying to chuck a SQL database everywhere.

The issue imho is that multiplayer synchronization (like Jazz) should rely on primitives(CRDT or similar) that you really can't hide under abstractions but should be part of the datamodel to allow for custom synchronization protocols for different parts of the datamodel or even exposing synchronization faults to the user.

An analogy would perhaps be how wrongly abstracted systems like CORBA and DCOM lost out (Even if you can run into them in crevices of enterprise systems) to things centered around HTTP calls or simpler message oriented systems like gRPC.

Re: Jazz – Apps with Distributed State

#139
post #126

Founder here - thanks for posting this! It’s getting late where I am so everyone who has questions please don’t be shy to ask, will elaborate in detail tomorrow!

What happens to the mesh if this doesn't work out as a commercial enterprise and the company behind it goes away? Practically speaking how much of it is running on your computer's today?

Well the version of the Mesh that we offer would go away, but the framework is open source as is a simple but fully functional version of the sync server, so you could somewhat easily host your own mesh. Not having lock-in here is super important for us

Re: Jazz – Apps with Distributed State

#140

Earlier quoted context omitted.

Even with the high failure rate of startups, I hope I'll do infinitely better than Google's certain product death (plus yeah, it's open source)

How difficult it is to self host? Is backend (the mesh) also open source?

yes a simple version of it is!

npx jazz-run sync

Post reply on HN