GraphQL backends becoming more efficient and performant: Takeaways from GraphQL Conf 2023
The GraphQL Community came together in San Francisco, between Sept 19 to 21, for the first ever GraphQL Conf hosted by GraphQL Foundation.
In this post, albeit late, I would like to summarize some key takeaways from the conference and how exciting the future of GraphQL looks like.
If you haven't watched any of the talks or want to do a quick check, here's the YouTube playlist of all the recordings. There were interesting workshops, talks, and discussions in sponsor booths.
In a continued commitment to GraphQL, Hasura was a Diamond sponsor for the conference and we had a booth interacting with GraphQL users and enthusiasts.
Supergraph Challenge
We ran a challenge for attendees in the conference. The challenge was to build and execute the fastest GraphQL federated query. Any framework or language. The constraint was to fetch data from two different Postgres DBs and to make a top N query
across two tables.
We had a couple of attempted submissions and one successful submission with the GraphQL Mesh solution. Here's the GitHub repo for reference.
GraphQL Fusion
Since we are on the topic of Supergraph and Federation, it was interesting to see the community come together to launch a more open spec called GraphQL Fusion to address the distributed GraphQL gateway problems. It will be released later this year with MIT license. The idea is that no single entity owns the GraphQL spec and the GraphQL Foundation will drive the spec related updates.
There are existing solutions like Apollo's federation and the Fusion was built to support composable subgraphs from Apollo. Hasura is working on an Open Domain Data specification for Data APIs, powered by GraphQL and this is an exciting time to be a developer in the GraphQL space as the new proposals make it more open, more flexible, and composable to build APIs for your business needs.
There have been a few interesting recap blogposts about the conference, from the team at The Guild, the team at Inigo and so on. I would also recommend you to take a look at those to understand what else went in the conference. Let us look at some takeaways from Hasura's talks.
Is GraphQL BFF necessary in a RSC World?
Check out Tanmai's keynote here.
GraphQL was popular for client side data fetching with the ability to specify what you want in a single query. With modern architectures in frontend frameworks and the shift to server side component rendering with that, data fetching and rendering is moving to the server. React Server Components solves client-side overfetching and underfetching that GraphQL used to solve for clients and now GraphQL can be used to solve backend optimizations like n-hops, query planning, and query optimization.
Why Relay is a must for GraphQL APIs
Marion Schleifer from our team talked about how Relay is critical to UI development and GraphQL without Relay leads us to reinventing the wheel on state management and API libraries again and again. We believe that GraphQL without Relay might not even be worth it.
You might be interested in this post - Scaling frontend app teams using Relay
The future of GraphQL Backends: Efficient, composable, performant, and more open
There have been various announcements in the conference that suggest the backend story for GraphQL is getting interesting and more open. Let us do a quick recap of those.
Federation
It was a natural path to open standards when it comes to Federation. Each framework had their own custom implementation and it was becoming harder. With more open specifications proposed during the conf like the GraphQL Fusion and everyone is collaborating to build this, GraphQL will help power a more top level abstraction like a supergraph. Hasura is building a data connector model to support composable APIs that enable much more powerful and performant federation with supergraph.
Grafast: Add query planning to your schema
Benjie Gillam, Graphile maintainer, announced Grafast, an entirely new approach to GraphQL execution to improve performance, reducing operational costs. What more? You can add this to a new or existing GraphQL APIs as well.
Benjie's Hot take: GraphQL's execution model is wrong for most servers.
Dataloader 3.0
Jens Neuse from Wundergraph talked about a new way to approach Dataloader to solve N+1 problems.
The DataLoader pattern solves the N+1 problem by introducing a concurrency problem - Jens Neuse.
Hasura Data Delivery Network (DDN)
A lot of attendees were excited about Hasura's future with DDN. Do signup on the waitlist to get an early access preview.
With around 400 attendees across three days, the conference was a great event to catchup with interesting usage of GraphQL, how large companies are adopting GraphQL and modernizing their data stack.
I will just leave you with this trends graph for the graphql
term. It is growing and has a new exciting direction for backend developers and there's no better time to start considering GraphQL in your data stack.