News for hackers. Stuff that matters.
Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by halfmatthalfcat on Monday October 31, 2022 @08:29AM (#33404804)
So does that make GraphQL the best then? JSON + faster/less data over the wire.
Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by counttheforks on Monday October 31, 2022 @08:38AM (#33404886)
Not when you count the DX of the backend developers. Good luck making a performant GraphQL backend that doesn't suffer the N+1 problem, and have fun whitelisting the GraphQL queries produced by your frontend, because attackers will be supplying their own queries with no regards to performance.
Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by halfmatthalfcat on Monday October 31, 2022 @08:40AM (#33404903)
GraphQL has a DataLoader (to avoid N+1) and query complexity utilities to avoid those issues.
Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by counttheforks on Monday October 31, 2022 @08:51AM (#33405025)
I know. Good luck implementing it performantly while also considering filtering, pagination, etc. It's doable of course, just not nearly as easy as people like to make it sound.
Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by thejosh on Monday October 31, 2022 @09:00AM (#33405131)
Best experience I had with GraphQL was a B2B app where we had a fair amount of users, as well as the "backoffice" app also powered by GraphQL. Bad users we could just ban (the user base were great folks but could barely operate a computer, so it was fine).

Backend was with Absinthe+Elixir, so it was great (if I had to do it again today I would instead use Liveview, this was in 2017 where I had to retrofit a React app into something useable).

Public user facing is a different story, the last major one I saw was Tableau, though they are also business facing where they can just ban bad users. Github also has deprecated their GraphQL endpoints[0].

[0] https://github.blog/changelog/2022-08-18-deprecation-notice-...

Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by foobazgt on Monday October 31, 2022 @09:53AM (#33405702)
Re: GitHub, that deprecation notice appears to be for GitHub Packages specifically. I don't see a deprecation notice on the general API: https://docs.github.com/en/graphql
Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by janejeon on Monday October 31, 2022 @02:08PM (#33409991)
> Bad users we could just ban

To be fair, it sounds like that would just make the DX wonderful no matter which stack you were using?

Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by azangru on Monday October 31, 2022 @08:46AM (#33404970)
> JSON + faster

Only if you have a very competent backend team, who, apart from dataloader, will have to figure out caching.

> /less data

Graphql responses tend to be pretty deeply nested.

Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by halfmatthalfcat on Monday October 31, 2022 @09:02AM (#33405144)
Apollo's Federation makes caching much easier to reason about as you can now selectively cache sub-query pieces at the service level for that specific responsible subgraph.
Re:Protobuf-ES: The Protocol Buffers TypeScript/JavaScript r... by philliphaydon on Monday October 31, 2022 @09:34AM (#33405478)
GraphQL isn’t magically faster. The equivalent endpoint in rest will be faster as you won’t need to translate the query to your backend persistence. GraphQLs benefits are not execution speed.