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

Articles

When to use multiple endpoints in GraphQL

GraphQL is all about having a single endpoint to query the data, but there are situations where it makes sense to instead have multiple endpoints, where each custom endpoint exposes a customized schema. This article explains how to identify those situations and what some of the advantages and drawbacks are.

Articles

How Elsevier Piloted an Innovative Publication Process Quickly and Flexibly with Prisma

Elsevier is a global leader in information and analytics in scientific publishing and helps researchers and healthcare professionals advance science and improve health outcomes for the benefit of society. With the help of Prisma, Elsevier is in the process of modernizing the scientific publishing process efficiently and with flexibility.

StepZen’s API management vision begins to take shape with free GraphQL tools

StepZen recently announced new free tooling to help simplify the management of GraphQL APIs. GraphQL Studio helps companies create a map of the various APIs your company uses, whereas their "GraphQL Federation" tool allows you to consolidate multiple APIs into a single graph.

AWS Amplify announces the new GraphQL Transformer v2. More feature-rich, flexible, and extensible.

AWS announced version 2 of their GraphQL Transformer tool, which allows for more explicit data modeling, includes a new authorization rule system, an improved OpenSearch integration, and a couple more interesting features.

Articles

Managing GraphQL at Scale

Bill Doerrfeld from DevOps.com takes a look at the current state of GraphQL adoption, and common issues when scaling your GraphQL APIs as well as how to address them.

Mock GraphQL Subscriptions with Laika

Bazyli Brzóska from the Zendesk engineering team takes a look at Laika, a new library that helps with testing, mocking, intercepting, and modifying Apollo Clients operations and how it can be used to help test GraphQL subscriptions.

Articles

GraphQL is built for Federation, but don't do it wrong

Anant and Dan dive into how to efficiently build a unified GraphQL API, which approaches are available, and common considerations when designing and implementing the unified API.

Boost Apollo GraphQL performance with cache normalization

Iskander provides us with an intro to Apollo Caching, cache normalization, and how the cache setup can help improve application performance.

Implement a GraphQL Server with ent and gqlgen in Go

A detailed walkthrough on implementing a GraphQL server using ent and gqlgen. ent provides the ORM framework and makes it easy to support various database systems as well as a 100% statically typed API via code generation.

Articles

Documenting GraphQL APIs

Roy Derks explores how to document your GraphQL APIs, how introspection and the playground can help what additional static documentation can bring to the table.

A Primer for Testing the Security of GraphQL APIs

Alex Leahu from Forces Unseen provides an introduction on how to test and secure your GraphQL APIs, what to look for when implementing your service, and common mistakes.

GraphQL The Rails Way: Part 1 - Exposing your resources for querying

In part 1 of a multi-post series, Arnaud Lachaume of Keypup explores how to get started with GraphQL in a Ruby on Rails project, the required dependencies, and what you need to expose your resources with a single line of code.

Articles

GraphQL 2021

Earlier this week the first release of the GraphQL spec, ratified by the GraphQL Foundation, was released to the public. Lee Byron goes over why it took over 3 years since the last ratified release, what's new in the 2021 spec and what's next!

What we can learn from GraphQL Conf 2021

Leonardo Losoviz wrote up a great summary of GraphQL Conf 2021, which took place a couple of weeks ago. He watched all of the recordings and summarized talks on schema stitching, federation, architecture, and more.

TIL: How to use GraphQL variables to give my queries type safety

Salma Alam-Naylor explains how using GraphQL variables adds an extra layer of protection for your APIs by adding type safety and providing more documentation to your users. And then she dives deeper into what is and isn't possible using variables.

Monitoring and tuning federated GraphQL performance on AWS Lambda

Krzysztof Lis wrote a guest series on the AWS Compute blog about IMDb's journey from a monolithic REST API to GraphQL. The third, and final, article goes into detail on how they are monitoring their AWS Lambda based API and what steps they have taken to tune performance.

Articles

GraphQL, meet LiveGraph: a real-time data system at scale

To provide a general solution to the problem of building (near) real-time views while abstracting the complexities of the data systems, Figma developed LiveGraph. It provides a data fetching layer on top of Postgres that allows your frontend code to request real-time data subscriptions expressed with GraphQL.

Why GraphQL Is Perfect as Data Layer for Microservices

GraphQL and microservices architectures are perfectly compatible. You can use GraphQL as a data layer for these microservices and combine data from all these services into one universal API. This way, you can break the core of your services into different microservices while still providing one endpoint that your clients can interact with.

How Instatus reduced their infrastructure costs by 86% thanks to GraphCDN’s GraphQL edge caching

Instatus allows its customers to create status pages for their products and services. They are beautiful, customizable, and load super quickly for visitors. For example, Linear uses them for their status page. Let's dive into their architecture to understand how GraphCDN's GraphQL edge cache helped reduce their infrastructure costs by a whopping 86%.

Field arguments vs. directives in GraphQL

Leonardo Losoviz explores how you can modify the output of a GraphQL field with arguments or directives, the pros, and cons, and ultimately makes a recommendation on when to use which approach.

Articles

RetailMeNot 💜 GraphQL Federation

Read up on how GraphQL Federation allowed RetailMeNot's developers to iterate faster and reduce their dependencies.

Working With Built-in GraphQL Directives

Jamie Barton explores GraphQL’s built-in schema and operation directives that all GraphQL spec compliant APIs must implement.

What makes urql different from other GraphQL clients

Listen to Phil Pluckthun explaining what the guiding principles for urql are and how those helped differentiate from other GraphQL clients.

Articles

Working With GraphQL Caching

“GraphQL doesn’t support caching” is something you can read in the inter-webs. The perception that GraphQL is at odds with caching is something Jamie Barton addresses in his post. He walks through different caching techniques and how to leverage cache for GraphQL queries.

GraphQL Can't REST

In this article, the team at Courier goes through the initial reservations they had before adopting GraphQL and looks back on how the adoption impacted their organization over the last year. It's a great example that it doesn't have to be black or white with GraphQL and REST. Both can exist side by side.

Categorizing GraphQL Directives into Schema or Query Type

GraphQL directives can be very powerful but also have unintended side effects. GraphQL clients like Relay might not be able to deal with specific directives the way they were intended by the GraphQL server, as they're not necessarily specced. Leonardo Losoviz differentiates between schema and query type directives and talks about their pros and cons.

Articles

How Skillshare moved to a federated GraphQL API

In 2018 Skillshare was struggling with performance and maintainability with their REST API, built as a PHP monolith. After attempting a rewrite in GraphQL, they finally settled for a federated approach. In this article, Justin Rodermond and Luis Aguilar from Skillshare talk about their journey through this process.

Reimagining data infrastructure and MES: The superiority of GraphQL

GraphQL has been debated endlessly in the world of web application development. Which is superior, REST API or GraphQL? Is it worth taking on the learning curve of a new query language for marginal gains in performance? When it comes to manufacturing data, the answer is a resounding YES. It is absolutely, unquestionably worth it. Follow along with this article to learn about ways in which GraphQL has the potential to create tremendous value in Manufacturing execution systems (MES).

GraphQL at MOIA — Here’s why we love it

At MOIA, the move towards GraphQL and Apollo Federation has helped to make their API more approachable and concise. However, the process was not frictionless. In this article, hear from the MOIA team about their journey to GraphQL Federation, the challenges they faced and the lessons learned.

Building federated GraphQL on AWS Lambda

Historically, IMDb uses a monolithic REST gateway system that serves clients. Over the years, it has become challenging to manage effectively. In this article, follow along with Krzysztof Lis to know how to build a federated GraphQL API on AWS Lambda.

Articles

Fixing 13 most common GraphQL Vulnerabilities to make your API production ready

With the increased adoption of GraphQL, the emphasis on security has also increased. Jens Neuse talks about 13 of the most common GraphQL security vulnerabilities and possible solutions in this article. The author further suggests that by rethinking your approach to GraphQL, you can ensure improved security along with other benefits.

GraphQL at PayPal: An Adoption Story

In this article, Shruti Kapoor explains the journey of Paypal in adopting GraphQL, the motivation behind the change and various challenges they faced along the way. Today, GraphQL is being used by several production apps across PayPal. It is now a default pattern to use GraphQL for building new UI apps, and many existing apps are in the process of migrating to GraphQL.

Lessons learned from running GraphQL at scale.

Dream11 is a fantasy sports platform with over 110 million users. Shrey Mehta and Kaushik Barodiya talk about adopting GraphQL to create a unified presentation layer for their back-end microservices in this very in-depth article. Follow along to understand many of the techniques they used to identify and resolve performance bottlenecks along with various other challenges.

Articles

Best Practices for Versioning REST and GraphQL APIs

A thought-provoking article about the different approaches for maintaining backward compatibility and their impact on the development lifecycle of APIs. Kay Ploesser provides a thorough comparison between the continuous evolution approach favored by GraphQL with the versioned approach often used in REST APIs.

Articles

Our Journey in Adopting Federated GraphQL at SSENSE

Over the last six months, SSENSE developed a federated gateway to their presentational micro-services (commonly referred to as the back-of-the-front-end). During this period, they also planned and migrated a single code path on the website to use the newly minted gateway. In this article, Quinn Langille gives a brief look into how and why they chose this pattern to evolve their consumer applications at SSENSE.

Solving the double (quintuple) declaration Problem in GraphQL Applications

If you are using Typescript, it can be a problem having to keep your GraphQL Operations (e.g. Query or Mutation) in sync with the type definitions. Jens Neuse talks about solving this problem as well as about how to keep the database schema, API schema and User Interface Components in sync.

Benchling’s double-writes approach to incrementally adopting GraphQL

Benchling is a platform for life sciences R&D with a highly customizable and extensible data model. In this article, Damon Doucet talks about how Benchling incrementally adopted GraphQL, along with key takeaways and learnings from this process.

Articles

GraphQL Observability with Hasura

Diagnosing performance issues in GraphQL can be difficult. In this article, Gavin Ray goes through some of the tools that are available in Hasura, as well as common pitfalls and useful tips to help get better visibility over the performance of an API.

Announcing the Release of Neo4j GraphQL Library 2.0.0

Neo4j helps build intelligent applications and machine learning workflows in GraphQL. In this article, Darrell Warde talks through some of the new features released as part of version 2.0.0.

Why GraphQL should not be in WordPress core

GraphQL makes it easy to query data across multiple sources. This can expose protected data if not configured correctly. In this article, Leonardo Losoviz explains why, as the creator of a GraphQL plugin for Wordpress, it should not be included in Wordpress Core.

Deeply Understand the GraphQL N+1 Issue and DataLoader

GraphQL helps reduce the over-fetching of unnecessary data, however, poorly constructed, deep queries can cause multiple, expensive trips to the database. In this article, Vanessa Lutz explains the N+1 issue, and how this can be solved with tooling.

Common GraphQL Misconceptions: A rant

Is GraphQL secure? In this article, SecurityGOAT clears up some misconceptions about GraphQL, and talks through how some of its convenience features could make it vulnerable to attacks.

Articles

SwiftGraphQL - A GraphQL client for Swift

SwiftGraphQL is a lightweight GraphQL client for the Swift programming language. In this article, Matic Zavadlal gives a brief introduction of the project and its goals, and demonstrates how easy it is to get started.

Why Your Organization Needs a Federated Graph Interface

Microservices help to encapsulate functionality into small, single responsibility pieces. This can reduce dependencies across teams, but may make querying data more complex. In this article, Nicolas Bohorquez argues the importance of a Federated GraphQL architecture and explains how Apollo can help to aggregate data across multiple data sources.

Articles

Exploring promising new feature proposals for the GraphQL Spec

The GraphQL specification is an ongoing work in progress. It is fueled by a vibrant community of awesome individuals, who regularly assess new potential features and guidelines to improve the spec. In this article, Leonardo Losoviz picks five proposed feature requests from the GraphQL Spec GitHub repo, and demonstrates how these could be used to drive the spec forward.

Introduction to the Node.js reference architecture, Part 4: GraphQL in Node.js

The Node.js reference architecture is a collection of documents from Red Hat and IBM, that aims to provide some guidance on developing Node.js applications. In part four of this series, Wojciech Trocki steps through some of the discussions the team had about implementing a GraphQL server - accompanied by comical illustrations.

Introducing Apollo Server 3

Apollo Server is one of the easiest ways to create a GraphQL API. Join Vivek Ravishankar, as he steps through some of the "under the hood" improvements the team have been working on, that will improve Apollo's ability to build better, more extensible features over time.

Introducing Envelop - The GraphQL Plugin System

Envelop is The Guild's new plugin system for GraphQL. In this article, Dotan Simha steps through why GraphQL needs a plugin system, and how Envelop solves this problem.