artsy/artsy.github.io

Comments: Why do we use Relay?

Opened this issue · 8 comments

orta commented

When the mobile team at Artsy considered moving to React Native back in 2016, one of the most compelling cases for making that jump was Relay. This, it seems, is a dependency that is rarely used in the JS community and we often find ourselves defending this decision to new engineers during onboarding and to the public at large.

[url]

Awesome article, exactly what I was looking for :)

Excellent write up. Nice work.

Out of curiosity, the article mentioned that an audit was performed to see what was still needed in apollo to make the switch worth it. Are there plans to do another audit soon? To me it seemed that most of the things Relay offered that apollo didn't are no longer issues and apollo seems to have even better tooling e.g. Apollo Dev Tools, Apollo Graph Manager, etc. I am currently using Relay but am wondering if apollo is ready for another look?

@kdawgwilk No audit per se, but we are looking to use Apollo server-side for its tools. There are a lot of necessary steps, like using standard Relay (instead of our fork). I don’t think we have any active plans to switch to Apollo on the client, though, just the server.

Does the pros and cons still hold true vs. urql as well?

@hegelstad I haven't looked into urql, but we're still quiet happy with Relay. We also use GraphQL outside of just a Node context, like with a recent ecommerce microservice in Rails, so we need a solution that isn't tied directly to React.

Thanks for the great read - also evaluating which GraphQL client to use for a React Native app I'm building for a nonprofit. It will likely always just serve React, Typescript clients so I'm leaning toward Relay despite the barrier to entry... but need to study up more on Apollo.

If Apollo & Relay were in their current states in 2016 when you made your decision. Would you have chosen Apollo?

There are some interesting projects here in 2021
Client:

  1. Gqless
  2. Urql

Server:
GraphQL Helix

Gateway:
GraphQL Portal