top | item 41322809

(no title)

jamest | 1 year ago

[Firebase founder] The thing I'm excited about w/Instant is the quad-fecta of offline + real-time + relational queries + open source. The amount of requests we had for relational queries was off-the-charts (and is a hard engineering problem), and, while the Firebase clients are OSS, I failed to open source a reference backend (a longer story).

Good luck, Joe, Stopa and team!

discuss

order

ashconnor|1 year ago

I always assumed that an architectural decision had prevented relational queries in Firebase.

It was jarring to find out that indexes are required for every combination of filters your app applies, but then you quickly realize that Firebase solves a particular problem and you're attempted to shoehorn into a problem-space better solved by something like Supabase.

It's not too dissimilar to DynamoDB vs RDB.

randomdata|1 year ago

> I always assumed that an architectural decision had prevented relational queries in Firebase.

Seems the biggest problem is that Firebase doesn't have relations. How can you query that which does not exist?

I'm guessing what they really want is SQL? Once upon a time when I was stuck on a Firebase project I built a SQL (subset) engine for Firebase to gain that myself, so I expect that is it.

999900000999|1 year ago

Thanks for creating Firebase!

It's really the definition of an managed database/datastore.

Do you see InstantDB as a drop in replacement ?

To be honest I don't want to have to worry about my backend. I want a place to effectively drop JSON docs and retract them later.

This is more than enough for a hobbyist project, though I imagine at scale things get might not work as well.

stopachka|1 year ago

For what it's worth, we designed Instant with this in mind. Schema is optional, and you can save JSON data into a column if you like.

If you wanted to store documents, you could write:

```

useQuery({docs: {}}) // get documents

transact(tx.docs[docId].update({someKey: someValue}); // update keys in a doc

transact(tx.docs[docId].delete()) // delete the doc

```

warden_2003|1 year ago

If you only need simple dropping and collecting back, maybe you should consider about AWS S3 or Supabase storage.

buggy6257|1 year ago

This is an aside but “trifecta but with four” actually has an awesome name: “Superfecta”!

djeastm|1 year ago

Tetrafecta would be cooler

SOLAR_FIELDS|1 year ago

I would probably avoid naming Firebase alternatives with a prefix like “Super” at this time.

wccrawford|1 year ago

https://en.wikipedia.org/wiki/Superfecta

Sounds like someone made up the name to just sound better than trifecta. It's marketing speak.

Also, as the link says, it has been used to mean more than four. And other languages use their own equivalent of "quadfecta" instead.

Plus, I knew exactly what "quadfecta" meant, but would have no idea about "superfecta".

robertlagrant|1 year ago

You probably heard this a million times but I still remember trying that simple firebase demo of draw in one box; see the results in another and being amazed. That was one of my pushes out of boring enterprise software death by configuration and into software creation based on modern OSS products.

650REDHAIR|1 year ago

Was pretty neat to see your investment/involvement!

Made me feel quite old that Firebase is no longer "modern" though...

Ozzie_osman|1 year ago

Awesome to see this launch and to see James Tamplin backing this project.

nezaj|1 year ago

Thank you James!

bobbywilson0|1 year ago

If we only had doSQL() for everything.