It’s a bit more than an year since I’ve jotted about GraphQL. During this time, I haven’t had the opportunity to use GraphQL in production. Rather, like with other tools on the market, I’ve only followed up reading articles and doing some (quite rare) queries while working on my Gatsby blog.
As I joined the GraphQL day yesterday, I feel it’s worth making another small article for people like me who are willing to be in the game with GraphQL, but don’t play it full time yet.
My personal high-level impression is that tools are divided into the following categories:
- Server: anything which help you manage GraphQL servers. Could be low-level implementation, express.js middleware, abstraction on top of it, etc.
- Client: answer for carrying out queries towards the server, i.e. tools that will fetch data. The question how you fetch and use data from the server can be as low-level of making an abstraction of post requests to esoteric (to my opinion) declarative ways around React components.
- Caching: anything from saving repetitive queries to memory, to using stores of state managers and others. As resolver functions are granular execution points of a query, it seems to me caching problem is a “sweet” problem to solve in the community.
- Reporting/logging/monitoring: anything which will help you trace information on what’s going on in the resolvers and other critical parts of the app. As GraphQL tools are mostly used for building API gateways, using monitoring SaaS is vital for serious production apps.
- IDE: GraphQL’s introspection and self-documentation features are huge wins. Naturally, graphiql is love at first sight for API experts. There are others worth trying as well - such as graphql-playground.
- Abstraction helpers around the GraphQL spec and other tools.
How to GraphQL is enough of a resource to know, just follow along the contributors around this project and you will be good to go :)
For lower-level, follow the working group and specification updates.
GraphQL is here to stay. Community has been growing, just as the number and quality of tools to facilitate adoption.