Please check out this presentation about Isograph at GraphQL Conf 2023. Please also see the slides.
In this presentation, Robert Balicki covers:
Introduction and motivation
- The many steps that one goes through when one extracts a child component
- Data masking, and why it is important
- The fundamental tension at the heart of GraphQL: it is a language for querying servers being used to provide isolation to front-end components
- The big idea: every fragment is associated with exactly one function
Isograph
- The developer experience that Isograph aims to provide
- The other big idea: resolvers are GraphQL's missing primitive
- How in Isograph, everything is a resolver
- How in Isograph, even components can be resolvers
- How entrypoints work in Isograph
Why resolvers are the unit of abstraction
- If we achieve data masking, we're already using resolvers
- Deferring data and code together is natural
- Resolver components let us reason about the on-screen-ness of data
- Imperatively loaded resolvers are entrypoints
- Server executed resolvers are regular ol' GraphQL resolvers
- Conditionally loaded resolvers are
@match
and Relay 3D - Resolvers can lead to better DevTools and application-creation tools
A demonstration of Isograph: Robert's Pet List 3000™
The roadmap
Q&A
- Is it worth writing your own Isograph language, instead of reusing GraphQL?
- What is the migration path from Relay to Isograph? Can it be automated?
- How does Isograph handle client resolver and server field name collisions?
- Is Isograph a bundler?
- How tied is Isograph to React, GraphQL and JavaScript?
I hope you check it out!