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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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.