Earlier quoted context omitted.
Yes exactly this UX issue bothers me a lot, I wouldn't even go there. :D What about migrations? Do you support? That's another thing I need in my offline first project, one of my other project has died because the lack of it. (I need something which plays well with Expo.io)
Migrations are very tough when you go offline-first. Cambria [^1] is an interesting read. For Instant, we are schemaless and think about offline more like a cache. In our case it's less of a problem. [^1]: https://www.inkandswitch.com/cambria/
A Graph-Based Firebase
31–40 of 53 posts
Re: A Graph-Based Firebase
#32Very interesting. I came to many similar conclusions completely independently, even attempted to build a typesafe in memory datalog in typescript. I also came to the conclusion that just exposing datalog triples as a query language would never feel right and tried to expose a graphql like language that generated the datalog triples. IMO react relay offers a great similar offering with their normalized cache. Relay ha…
Thank you for the kind words! Both Joe and I are around if you any feedback. In terms of type-safety, we're thinking of it as an added layer. I'm optimistic, that since InstaQL provides objects as the interface, we could have more idiomatic types down the road.
Re: A Graph-Based Firebase
#33Re: A Graph-Based Firebase
#34Re: A Graph-Based Firebase
#35Re: A Graph-Based Firebase
#36I am normally quite skeptical of “Firebase but X” projects because they often seem to be running head first into the issues that the Firebase team so skillfully avoided.
This isn’t one of those projects. The author of this essay clearly gets what you need to actually build a backend for a modern app that’s also simple enough to get started with. I’m very excited about this project.
Re: A Graph-Based Firebase
#37It is beyond awesome for building mobile apps, but mobile only. Annoyingly they have never released a web version. No idea why.
I would still look into it for ideas. It is super powerful and a joy to work with. I would love to see something like that working in the browser.
Re: A Graph-Based Firebase
#38Earlier quoted context omitted.
Hasura does not offer syncing. Syncing is hard :)
Aha, yup. My way of offline, is just store all commands offline and sync the command only. Syncing the view is hard.
1. You need to support old command (and payload schema) indefinitely. Or need migrations for those instead.
2. In highly interactive apps, this needs a lot of chatter. A peer that is offline for a few weeks may need to sync many many commands before they get to the latest version, and people generally don't like waiting on sync to complete. And syncing while users are interacting with the app gets complex pretty fast.
We tried to alleviate 2 using things like compaction and merging of commands, but eventually it ended up being much more complex than syncing the latest ui state which was a much smaller payload for our case.
It also eliminated many of corner case bugs in our command history compaction logic where some clients could end up in an invalid or unexpected states in very specific scenarios which were very hard to reproduce. Doing aggressive compaction while retaining effective order can get tricky if the object model is complex and deeply interlinked.
Not saying it is not a valid approach, but Ymmv.
Re: A Graph-Based Firebase
#39Re: A Graph-Based Firebase
#40tripletstore/datalog actually seems like a decent compromise between SQL and no-SQL that could actually work out! Awesome idea!