GraphQL Ecosystem
About me! ๐ค
ย
- Write code! - mostly for fun ๐
- Love to play Football โฝ
- Working with Prisma (prisma.io) on OSS ๐ผ
- Twitter (and across internet): @divyenduz ๐ฆ
Aim ๐ณ
- Cover width and not depth of the GraphQL stack ๐ต๏ธโโ๏ธ
- Save you tons of research time โ
- Challenges
- Engineering ๐ฉโ๐ป
- Human ๐
- Help you get started on OSS โค๏ธ
- This is an ongoing discussion
Find me @divyenduz on ๐ฆ - DM are open!
- This is an ongoing discussion
GraphQL
- Single Endpoint for all data โ๏ธ
- Contract between client and server ๐๏ธ
- Static analysis/optimization/safety
- Decoupled client/server
- SDL
GraphQL
Origin ๐ฐ
- Mobile development at Facebookย
- Open sourced in 2015 (started in 2012)
- Language agnostic
- Transport agnostic
- What was open sourced?
Reference Implementation in JS
Spec
The Ecosystem โ๏ธ
- graphql-import
- graphql-config
- graphql-cli
- graphql-tools
- graphql-binding
- VSCode GraphQL
- ----------------------------------------
- Clients
- graphql-request/Apollo/urql/relay
- Servers
- graphql-yoga/apollo-server
- More
- Playground
graphql-import
- SDL does not have an import system
- Good: Intelligent auto-import
- Bad: The comment syntax
- Challenges:
- Upcoming features
- Collisions
- Cyclic imports
https://github.com/prismagraphql/graphql-import
graphql-config
- Language agnostic configuration
- Good: Supported by a lot of tools in Ecosystem
- Bad: Too many variations (opinion)
- Challenges:
- Adoption
- Simplification
https://github.com/prismagraphql/graphql-config
graphql-cli
- Common development workflows
- Good: Awesome getting started experience
- graphql create, get-schema, lint etc
- graphql codegen: code generation
- graphql-config
- Language agnostic
- Bad*: Open issues that need love ๐ค
- Challenges:
- Powerful plugin system
https://github.com/graphql-cli/graphql-cli
graphql-tools
- Powerful yet easy abstraction over graphql-js ๐
- Good: Schema stitching ๐
- Architectures*
- Delegation
- graphql-binding
- Bad: Only exists in JS 1๏ธโฃ
- Challenges:
- Implementation in other languages
https://github.com/apollographql/graphql-tools
graphql-binding
- Auto-generated SDK for your GraphQL API ๐
- Supports schema stitching & codegen
- Good: Amazing developer experience, type safety
- Bad: Only exists in JS 1๏ธโฃ
- Challenges:
- Abstraction overhead
- Resources: https://w3z.in/42f3a
https://github.com/graphql-binding/graphql-binding
VSCode GraphQL
- Language service protocol โค๏ธ
- Auto-completion, highlighting, lint ๐ฉโ๐ป
- Integrated development experience ๐คฏ
- Good: Reduced context switch ๐
- Bad: Edge cases need some love ๐ช
- Challenges:
- Client queries mapping
- Upcoming:
- Execute GraphQL operations โฉ
https://github.com/prismagraphql/vscode-graphql
Important Note about OSS
- Humans ๐คนโโ๏ธ
- Empathy ๐ค
- Help/join ๐
Questions? ๐ค
Feedback ๐
https://www.divyendusingh.com
Thank you ๐
GraphQL Ecosystem
By Divyendu Singh
GraphQL Ecosystem
- 418