The latest GraphQL Contributor Day Event focused on new updates to the GraphQL ecosystem, including packages like GraphiQL, GraphQL DataLoader, and other GraphQL clients.
Topics covered at this event included GraphQL federation, industry best practices, the latest available features, and roadmaps for tools like DataLoader.
Don't forget about the upcoming GraphQL Conf scheduled for June 7th, 2022!
Here is a complete list of the hosts and guests that attended the online event.
Hosts
- Dustin Goodman, Engineering Manager, This Dot Labs, @dustinsgoodman
- Tanmai Gopal, Founder, Hasura, @tanmaigo
Guests
- Adhithi Ravichandran, Software Consultant at Surya Consulting Inc., @AdhithiRavi
- Eitan Joffe, CTO at Inigo Labs, @eitanjoffe
- Gabriel Nordeborn, Partner at Arizon, @zth
- Jamie Barton, Full Stack Developer, @notrab
- Joey Nenni, Staff Engineer at Paypal, @JoeyNenni
- Kyle Schrade, Senior Software Engineer at StockX, @notkyleschrade
- Mandi Wise, Senior Manager Solutions Architecture at Apollo, @mandiwise
- Marc-André Giroux, Senior Software Developer at Netflix, @xuorig
- Roy Derks, Developer Relations at StepZen, @gethackteam
- Uri Goldshtein, Founder of The Guild, @UriGoldshtein
You can watch the entire GraphQL Contributor Day event on This Dot Media's YouTube Channel.
New GraphQL Updates
GraphiQL Updates
The latest GraphiQL updates include:
- A newly proposed design
- Support for multiple operation tabs
- Support for design customization of GraphiQL itself
- A proposal for new official maintainance structure on how to manage the project, the people, and PR approval for the repository
Dataloader Updates
According to Uri Goldshtein, The Guild will maintain DataLoader. New versions already released, and more are planned for the future, including releases that enable Typescript migration.
The roadmap for DataLoader's future releases are in place. If you have any suggestions for improvements, check out the Dataloader Roadmap.
If you want to learn more about DataLoaders, Jamie Barton and This Dot Media have free trainings available. You can check out Jamie's video Batching with DataLoader or This Dot's Intro to GraphQL DataLoaders.
The panelists were interested in the possibility of DataLoaders being brought into GraphQL as an internal implementation. However, no such implementation currently exists, and most of the present work involves trying to bring the repo up-to-date while answering the community’s questions, and providing documentation.
How does DataLoader differ from Apollo's DataSource concept?
Apollo's data sources is a great tool for retrieving data from a given source, such as REST APIs and databases.
Like DataLoaders, data sources attempt cache results to avoid double fetches.
With DataSource, you can abstract some of the data fetching methods, and easily connect to the methods. There isn't anything built into Datasource around batching, but it does support some mechanism for caching and data fetching.
GraphQL Conf 2022
GraphQL Conf 2022 is coming to Houston, Texas on June 7th. The panelists were excited to finally attend an in-person event again, and were also thrilled to know that the event would be in partnership with the Openjs Foundation.
GraphQL Conf is a conference for GraphQL enthusiasts focused on GraphQL tooling and implementations. Visit GraphQL Conf 2022 if you're interested in speaking at, or attending the conference.
GraphQL Server Side Updates
GraphQL Yoga
GraphQL Yoga was created, and is maintained, by Prisma. But, it was shelved for priority reasons, and The Guild subsequently took over its maintenance.
The team at The Guild has rebuilt the 2.0 version from the ground-up, and v2.0 is fully customizable, user-friendly, and supports all platforms.
Try GraphQL Yoga 2.0 yourself!
GraphQL Clients for Java, Go and others
GraphQL clients for other languages like Java, and Golang include:
- Java GraphQL Client - DGS Framework is a framework for Java and Kotlin.
- Ent framework from Facebook for Golang
- Fezzik's Fully generated Golang Graphql Client by Inigo Labs
- genqlient: a truly type-safe Go GraphQL client by Khan Academy.
Key Update on Relay
The Relay team has been working on the Client Control Nullability proposal for more than three months, and has also been working to bring Client Side State into Relay.
Are there specifics on how Relay can work with React Native?
Relay is separated into three different packages:
- The compiler, which scans the entire project and compiles your queries.
- The Relay runtime, which is the actual store and cache.
- The React Relay, which ties everything together.
There is also binding for Apollo, which is maintained by the community, and a full port of Relay to Swift, so it is possible to use it with other clients.
Relay's core is fully usable, and can even be used on the server.
GraphQL CodeGen
TypedDocumentNode is one of GraphQL Codegen's newly highlighted features. This allows users to take GraphQL strings, and receive typed results with CodeGen using TypeScript.
You can also write fragments inside of your components, and get the typed results of that query inside of the same components. This reduces the number of types imported from a single file, which decreases bundle size through treeshaking.
Finally, even with a flag, you can enable fragment masking, which ensures that you are just using the data that is inside of the TypeScript component.
Conclusion
This was an incredible conversation with a great group of guests, and I would highly suggest you watch the video to hear more about best practices and code federation.
You can watch the full GraphQL Contributor Day event on This Dot Media's YouTube Channel.