Use GraphQL Data Loaders to Prevent Scaling Issues by Batching & Caching Database Requests
Offered By: egghead.io
Course Description
Overview
Most developers would raise an eyebrow if they saw database queries being done in a for-loop, but GraphQL provides just enough abstraction that it isn't always intuitive exactly how many times each resolver fires at scale, nor is it obvious how to batch operations efficiently and still return the correct results to the correct consumer
You'll learn how to use the GraphQL Data Loader pattern to improve the performance of your application, and solve scaling issues before they become a problem.
To do this, we'll first implement our own naive version of the pattern to understand why the API is shaped how it is. Then we will switch over to the official DataLoader package and explore the benefits further.
Follow Along
With just a couple of clicks, you'll be able to set up a Gitpod to follow along and optimize a GraphQL API as you work through the course. Navigate to the GitHub Repository and get started!
Check out the Gitpod here!
Skills you'll Gain
Implement a cache layer to optimize your requests
Batch requests so your Database isn't overloaded
Build a performant GraphQL API
You'll learn how to use the GraphQL Data Loader pattern to improve the performance of your application, and solve scaling issues before they become a problem.
To do this, we'll first implement our own naive version of the pattern to understand why the API is shaped how it is. Then we will switch over to the official DataLoader package and explore the benefits further.
Follow Along
With just a couple of clicks, you'll be able to set up a Gitpod to follow along and optimize a GraphQL API as you work through the course. Navigate to the GitHub Repository and get started!
Check out the Gitpod here!
Skills you'll Gain
Implement a cache layer to optimize your requests
Batch requests so your Database isn't overloaded
Build a performant GraphQL API
Syllabus
- Detect Scaling Issues When Loading Data In a GraphQL API
- Cache Database Requests Across GraphQL Resolvers
- Batch Database Requests with a GraphQL API
- Refactor the Data Loader into a Reusable Class
- Create a New Cache on Every GraphQL Request Using Apollo Context
- Install the DataLoader Package
- Fetching an Item by ID with a GraphQL DataLoader
- Fetching Many Items by Key with GraphQL DataLoaders
- Count the Items in a Collection By Reusing a Data Loader
- Count the Items in a Collection with a Custom Data Loader
Taught by
Jacob Paris
Related Courses
Software as a ServiceUniversity of California, Berkeley via Coursera Intro to Computer Science
University of Virginia via Udacity Web Development
Udacity Software Engineering for SaaS
University of California, Berkeley via Coursera CS50's Introduction to Computer Science
Harvard University via edX