4 ms·
I'm still not sure that those entry-level frameworks using GraphQL aren't repeating Rails' ActiveRecord issues when it comes to more complex data relationships.
by mhd 7y ago
I'm still not sure that those entry-level frameworks using GraphQL aren't repeating Rails' ActiveRecord issues when it comes to more complex data relationships. Both work alright for "blog post" and "user" entities, but become a bit awkward when it comes to even basic CRM-type examples (contact/company/address/junctions).
I know that Facebook is using this at scale, but that's a whole different issue, with lots of custom optimizations and special backends.
I've heard GraphQL proponents call joins "premature optimization", and I don't even know how to respond to that…
- ralusek 7y agoSame, am I the only person that uses inner/right joins? A lot of times I'm not doing it in order to minimize subsequent calls, but rather because the logic of my query depends on being able to do a join. Obviously my understanding is that at Facebook-scale you're not really able to have the luxury of joins, and have to accomplish your query logic in other ways...but that strikes me as joins being something you have to relinquish if necessary, rather than being a premature optimization.
- crubier 7y agoPrisma is definitely limited when it comes to advanced use cases. I have been using it for two years and we are now moving to postgraphile because of this. And Prisma 2 doesn’t help, it makes it worse.
- hokumguru 7y agoTBF, Prisma2 also includes a sql breakout that allows you to run whatever Postgres-flavor sql you want in your code.
- crubier 7y agoYes, Prisma allows you to run hand crafted SQL queries. That’s is the bare minimum I would expect from it. Graphile on the other hand allows you to do this AND to systematically generate whole classes of such requests, through plugins.
- WrtCdEvrydy 7y ago> I've heard GraphQL proponents call joins "premature optimization", and I don't even know how to respond to that… These are the same people that build something complaining about 'overengineering' and when they get stuck just end up shutting down and rewriting stuff.