graphql-batch VS dataloader

Compare graphql-batch vs dataloader and see what are their differences.

graphql-batch

A query batching executor for the graphql gem (by Shopify)

dataloader

DataLoader is a generic utility to be used as part of your application's data fetching layer to provide a consistent API over various backends and reduce requests to those backends via batching and caching. (by graphql)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
graphql-batch dataloader
3 47
1,404 12,632
0.4% 0.5%
6.2 3.3
21 days ago about 1 month ago
Ruby JavaScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

graphql-batch

Posts with mentions or reviews of graphql-batch. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-07.
  • The GraphQL N+1 Problem and SQL Window Functions
    3 projects | dev.to | 7 Oct 2022
    After recognizing the problem, we brainstormed options to offload some of the work onto the database server to ultimately reduce the Rails application’s memory consumption. One particularly promising avenue involved SQL window functions. After deciding to pursue SQL window functions, we started our work by considering the WindowKeyLoader example described in the graphql-batch repository.
  • N+1 problem will never be an issue with N1Loader gem
    4 projects | /r/rails | 22 Jan 2022
    Interesting, I've just been researching Dataloader implementations for Ruby and have between trying to decide between GraphQL::Dataloader, graphql-batch and BatchLoader. I'll give this a look as well. Can you also make API calls inside the loaders?
  • "I'm the CTO of a Growing Rails Startup" Ask Me Anything
    3 projects | /r/rails | 27 Aug 2021
    This is mainly addressed in the last thing but we cache pretty heavily on our REST APIs and for GraphQL we use the graphql-batch gem pretty heavily. Those two things can go a long way. Make sure you're using an APM like Scout to keep an eye on things and then debug the outliers.

dataloader

Posts with mentions or reviews of dataloader. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-16.

What are some alternatives?

When comparing graphql-batch and dataloader you can also consider the following projects:

graphql-guard - Simple authorization gem for GraphQL :lock:

Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.

graphql-client - A Ruby library for declaring, composing and executing GraphQL queries

react-relay - Relay is a JavaScript framework for building data-driven React applications.

GQLi - Ruby GraphQL Client for Humans

Knex - A query builder for PostgreSQL, MySQL, CockroachDB, SQL Server, SQLite3 and Oracle, designed to be flexible, portable, and fun to use.

moql - Mock GraphQL server for fast reliable integration tests.

jest - Delightful JavaScript Testing.

BatchLoader - :zap: Powerful tool for avoiding N+1 DB or HTTP queries

Sequelize - Feature-rich ORM for modern Node.js and TypeScript, it supports PostgreSQL (with JSON and JSONB support), MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle DB (v6), DB2 and DB2 for IBM i.

Spree Commerce - A headless open source e-commerce platform for global brands

gRPC - The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)