Hacker News new | ask | show | jobs
by tayo42 1280 days ago
I have pretty limited experience with graphql. Why is apollos offering interesting to people? A hosted graphql proxy? You still need to write your own servers(but theres a ton of good libraries in multiple languages for this?)

Architecturally it seems to be adding a massive hop to requests made, but its not clear to me what the benefit is?

4 comments

I don't know about the company or how they make money with it (support?), but Apollo is pretty much the standard GraphQL client for frontends. It has pretty sophisticated cache and state management, type generation for typescript, etc.
It’s arguably the least sophisticated of the major clients (Apollo, Urql, Relay), but they’ve done a great job with marketing and documentation. But I’ve personally never used it in a real project because Relay has always existed and I know how to use it.
And for the server? What do you use instead of Apollo?
Depends on language, I've build GraphQL servers in a few, though mostly JavaScript and Python. For Python I used to use Graphene, these days I use Strawberry.

For JavaScript, I originally used graphql-js and express-graphql, as these were the original libraries and I was a literal day 1 adopter. All the libraries are essentially just wrappers around graphql-js, so it's still viable to use directly. But for schema-building I now use Pothos (https://pothos-graphql.dev/), I'd probably use graphql-helix as the http layer (https://github.com/contra/graphql-helix).

Personally I wouldn’t advocate for these as I don’t believe it’s a good idea to automatically generate a GraphQL schema based on your database (I haven’t worked on anything in years where this would’ve been a good idea). But YMMV as always.
Can you give reasons for why you believe that?
What these companies offer (another one I am using is "The Guild") is mostly tooling and DEX. GraphQL is a specification. The implementation will depend on the tools/infra you'll use. That's what these guys offer.
In addition to the other comments, their APM platform is built specifically for graphql so it includes things like query performance on the field level. Existing tools don’t always play nicely since a graphql server is usually just one endpoint and doesn’t use normal status codes.

They also provide libraries for both the client and server so they can tell you what versions of your client are using specific data.

Managed schema evolution mostly. Essentially git branches for your schema, that you can't merge if it would break your clients.