A weekly newsletter of the best news, articles and projects about GraphQL

Articles

The GraphQL Dataloader Pattern: Visualized

In this article, Marc-André Giroux breaks down what the GraphQL Dataloader pattern is and why data loading issues exist with GraphQL. He provides examples of performance issues with various executions of GraphQL queries. Giroux also provides his thoughts on lazy loading and emphasizes an asynchronous approach to resolvers.

GraphQL Code-First and SDL-First, the Current Landscape in Mid-2019

This blog sheds some light on the current state of the GraphQL ecosystem and the decision between code-first or SDL-first schema development. Rohit Ravikoti analyzes both implementations and offers insight into the risks and tradeoffs each approach has. He includes a couple of suggestions on how your team can stay organized and choose the approach that fits best.

Some thoughts on GraphQL vs. BFF

This post shares some interesting insight on the different API patterns, Back-end for Front-end (BFF) and One-Size-Fits-All (OSFA), and how they could be affected by the usage of GraphQL. Phil Calçado explains how BFFs can optimize endpoints/payloads and questions if BFFs are even necessary with GraphQL. He also challenges single schema data models and how integration databases can be problematic.

Articles

GraphQL Documentation Generators, Explorers, and Tools

This article by J Simpson compiles some of the best GraphQL documentation generators and tools for your API development. He lists out the benefits and disadvantages from using static documentation generators like GraphQL Docs to documentation explorers like GraphiQL. Optimize and automate your workflow with the tools Simpson discusses throughout the article.

Migrating to GraphQL: A Practical Assessment

This in-depth research paper by engineers from the Federal University of Minas Gerais assesses the differences in migrating API clients and utilizing GraphQL instead of standard REST-based APIs. After migration to GraphQL, the results demonstrated a 94% reduction in terms of fields and bytes. Read more about the community’s response and commentary towards some controversial claims in the hacker news discussion.

Building a Mock Blue Bottle GraphQL API

This tutorial is packed with resources from Eve Porcello's and Alex Bank's GraphQL Workshop on building a GraphQL Schema to mock a web application. The article details the process of creating a mock schema of bluebottlecoffee.com using Apollo and faker.js. It includes how to implement interfaces, write mock resolvers, and get a GraphQL server set up.

Articles

How Product Hunt structures GraphQL Mutations

Learn how Product Hunt maintains a consistent structure for organizing GraphQL mutations with their naming conventions and mutation shape. The blog discusses how to handle Relay compatibility, GraphQL node and error fields, and response aliases. Product Hunt shares the frontend and backend tooling that supports these mutations and allows developers to focus more on business logic.

React Apollo vs Redux + REST: Implementing the same feature twice

This article offers some insight into the benefits and drawbacks of using Redux with REST calls versus using React Apollo with GraphQL. Gytis Vinclovas from Wix Engineering created this experiment to test the two client stacks and the differences in data loading, calling APIs, updating local states, and overall flexibility of each tool.

Why GraphQL

This detailed article explains the reasons and motivations behind the adoption of GraphQL at Managed by Q. It documents the engineering team’s process of rebuilding the bridge between data services and clients. The article not only breaks down the improvements in their architecture but also showcases the concerns the team experienced during implementation.

Articles

Top Takeaways from GraphQL Conf 2019

A great summary of the GraphQL Conf 2019 and Prisma Day that includes resources on what was discussed, showcased, released, and any other notable tools/concepts. The post highlights some key takeaways and comments on the state of the GraphQL community.

GraphQL & Caching: The Elephant in the Room

In this article, Marc-André Giroux offers a deeper understanding of GraphQL’s limitations in terms of caching. He investigates how HTTP caching, server-side caching, and application side caching all have different effects on how cacheable GraphQL really is. The article is a preview of his upcoming book which will dive into solutions to the GraphQL caching problem.

There and Back Again, A GraphQL Lifecycle Tale

This blog post helps explain and visualize the lifecycle of a GraphQL request and server response. The post details the path from when the client sends a request to how the server parses and then resolves the expected response.

Articles

Postman v7.2 Supports GraphQL!

Postman now supports GraphQL! With the newest update, Postman can send GraphQL queries in the request body, use GraphQL variables, autocomplete queries, and create/store GraphQL schemas directly in Postman. Check out this blog to see examples of all the new features and how to get started working with GraphQL in Postman.

Enhancing schemas with interfaces

This article breaks down what GraphQL interfaces are and how to implement them. Schema examples are provided in a side-by-side comparison on how using interfaces help improve schemas by adding better readability, scalability, and maintenance.

EdgeDB Roadmap

EdgeDB is a new relational database with native GraphQL support. The newly published roadmap details the vision and the future of the product. Currently built out GraphQL features include Querying Object Types and Querying Views, with Access Control and Mutations planned for 1.0.

The Guild is taking over maintenance of merge-graphql-schemas, so let’s talk about GraphQL Schema management

As mentioned in the title, The Guild is taking over the maintenance of merge-graphql-schemas, a tool that was maintained by OK Grow. In The Guild's post on the subject, Uri (the founder of The Guild) explains that merge-graphql-schemas will join other schema management tools that the company works on. Furthermore, in the weeks, additional articles will be published on the various topics related to splitting schemas and the related solutions.

Articles

Apollo raises $22 million to simplify app development

Congrats to Apollo for raising 22$ million in funding for its first venture capital round! Apollo is determined to empower developers by providing a platform for building data graphs that connect apps and devices to the cloud. With this funding, Apollo plans on improving core technology, like Apollo Federation, and providing more resources and documentation for open source libraries.

Moving to a static site with Gatsby + Netlify + Contentful

Scott Silver shares the process on how Flexport changed their site architecture to be static, incorporating Gatsby, Netlify, and Contentful into their stack. As both Gatsby and Contentful work with GraphQL, the tools integrated very well into their existing stack. He dives into the pros and cons of these tools, as well as describes the role played by GraphQL, and provides valuable advice for large-scale organizations that are also interested in increasing performance.

The API I wish JavaScript GraphQL implementations supported

This interesting blog post discusses a powerful strategy for building API schemas based on the user interface. Samer Buna breaks down the advantages and disadvantages of implementing your GraphQL service and how we can use schema-language text to start building the frontend without server implementation. To try it out yourself, check out the graphql-makers package included at the bottom of the post.

Articles

A Year of Large Scale GraphQL - The Biggest Takeaways

This interesting article discusses the results of implementing GraphQL at scale. Peter Nycander shares the lessons he learned and his experience with GraphQL design, server side caching, mutation types, and schema stitching.

Articles

13 GraphQL Tools and Libraries You Should Know in 2019

Check out this comprehensive list of useful GraphQL tools and libraries. This list provides tools suited for different use cases and a bunch of helpful projects to help you get started. If you know a tool that isn’t listed, feel free to contribute in the comments!

Implementing Authentication using JWT, Bcrypt and GraphQL Nexus

A simple yet in-depth tutorial for those starting out with GraphQL Nexus and authentication. A step by step tutorial for managing authentication including coded examples for both the backend and frontend implementations. The article breaks down how to utilize a JSON Web Token to authenticate users and set up mutations to properly generate authorization headers.

Performance Testing a GraphQL API

This article exposes how GraphQL might not always guarantee an increase in performance. With clear images and example use cases, Jackie King explains how GraphQL implementations can lead to new performance challenges. He also provides solutions and conventions for solving these problems.

Articles

GraphQLifying REST

A detailed tutorial on how to use AWS AppSync to perform GraphQL queries and mutations against existing REST API endpoints. The tutorial shows how easy it is to define HTTP data sources and quickly map them to a GraphQL schema of your choice. A link to a video walkthrough is provided at the end of the tutorial.

An Empirical Analysis of GraphQL API Schemas in Open Code Repositories and Package Registries

This short academic paper provides a real world analysis of how GraphQL is being used. Reviewing over 20,000 GraphQL related projects and 37,000 dependent packages and repos, the paper highlights the usage of different schema constructs, the number of distinct types and the most popular types in schemas, as well as the presence of cycles in schemas.

Articles

GraphQL Trends in 2019

An in-depth article gives an overview of the current state of GraphQL, recent trends, and a prediction for the most relevant topics in GraphQL in 2019 and the near future. The article highlights the new services and tooling the GraphQL community has developed and provides links to all the resources and events mentioned.

Articles

The state of GraphQL

In this article, Tomek dives into some of the findings from the stateofjs.com and looks into GraphQL's increasing popularity, most liked aspects, most disliked aspects, and the usage. You can find his analysis and the link to the original survey in the article.

Articles

Best Practices for Versioning REST and GraphQL APIs

This in-depth article discusses the different approaches for maintaining backwards compatibility and their impact on the development lifecycle of GraphQL and RESTful APIs. The article reasons out when to use an evolutionary approach instead of versioning and provides some examples of best practices.

Articles

Elixir, Phoenix, Absinthe, GraphQL, React, and Apollo: an absurdly deep dive

This detailed blog dives into building a full-stack GraphQL application using Elixir, Phoenix, Absinthe, GraphQL, React, and the Apollo stack. Gain valuable insights on the inner workings of client, server, authentication, testing, and Apollo.

Complex GraphQL Filtering With neo4j-graphql.js

An advanced tutorial on combining filter inputs within GraphQL queries using neo4j-graphql. The blog discusses how we can modify filter arguments by nesting or adding logical operators. Try it out in real time with the Codesandbox provided in the post!

Schema-First GraphQL: The Road Less Travelled

This article discusses the different approaches for GraphQL API development and makes an argument for schema first design. Although he primarily explores the benefits of schema first design, he also shares his case for code-first development.

Articles

The tension between data & use-case driven GraphQL APIs

In this article, Marc-André Giroux comments on the differences between data and use case driven schema design . Even with a tendency to lean toward a use case driven approach, there are some clear downfalls when handling details like pagination and timeouts. As with most things, a combination of strategies may solve these problems. Marc offers a few ideas to merge the two strategies and benefit from each of their strengths.

TypeGraphQL and GraphQL Nexus — A Look at Code-First APIs

Rohit Ravikoti at Novvum provides a clear comparison of two popular code-first GraphQL libraries, TypeGraphQL and GraphQL Nexus. The article does a great job of outlining the advantages and disadvantages of each API and provides coded examples of their differences. This is a great place to start when exploring code-first GraphQL development with Typescript or Node.

Understanding GraphQL Mutations

An in-depth introduction for beginners to understanding GraphQL mutations. The article provides a helpful summary on the different use cases for mutations as well as how to return custom objects.

Behind the scenes of Hootsuite Inbox

A deep and fascinating article on how Hootsuite used GraphQL to build out their inbox tooling. The piece walks through the the challenges the team faced with views and the ways that the collaborative nature of the software required all actions taken to be asynchronous and having eventual consistency. Told through an example of a more generic todo list, this article is a great read through some of the benefits and challenges of GraphQL in development.

Articles

A Different Approach to GraphQL Caching

This blog post explores the different GraphQL libraries, such as Apollo and Urql, that keep track of cache data. He shares some insight on the benefits and tradeoffs on client-side parsing of your queries. This post also demonstrates the real use cases for the new micro-graphql-react library which helps with non-searched data and soft resetting search results.

Articles

A Practical GraphQL Architecture

An engineering blog post from Globality, this article shares some great insights on how they use GraphQL in the products they build. This includes explanations of rules and patterns they use to help separate concerns, enforce consistent resolver patterns and optimize for performance. The blog provides some advanced tips and suggestions for building practical GraphQL architectures and a few links to Globality's open-sourced internal frameworks.

The rise of GraphQL “Overambitious API gateways”

API gateway services and vendor solutions can be found all over the internet. However in this article, Marc-André Giroux contemplates why they have not started to appear within the GraphQL ecosystem. Marc shares his thoughts and feelings on the potential of general purpose GraphQL gateways and the features he would like to see them include.