GraphQL Fastify vs Apollo Server — Learnings from the real world

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • graphql-fastify-server

    GraphQL Fastify Server is an implementation of GraphQL.

    GraphQL Fastify Server is an implementation on top of GraphQL. This package provides GraphQL integration with caching of both query parsing and validation, a JIT compiler to further optimize query executions, and a cache system out of the box. Unlike Apollo, this package only works over the Fastify runtime. GitHub - rpvsilva/graphql-fastify-server

  • Hey

    HTTP load generator, ApacheBench (ab) replacement (by rakyll)

    To compare the two servers, we used two packages. The first one was ClinicJS, an open-source set of tools used to diagnose NodeJS performance issues, which also gives you suggestions and points you in a direction to fix the diagnosed problems. The second one was hey, a CLI tool to send some load to the server. Below we show how we use them and the results of these comparisons.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

  • fastify

    Fast and low overhead web framework, for Node.js

    In this article, we’ll be discussing a problem that we faced when using Apollo GraphQL in a production environment and how we managed to solve it. To do so, we’ll compare two different GraphQL runtime solutions, one using ExpressJS and the other one using Fastify, and also analyze the implementation details and show you some benchmarks.

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

    Since we were focusing to deliver the MVP, we didn’t concern about using a good cache database like Redis, but we’ve prepared our server to be ready for it, however, we stayed with the in-memory cache. The integration with a Redis cache was our new attempt to mitigate the persisting problem. This improvement would decrease the number of read/write operations in the memory and remove the redundancy of data between pods, these were the main topics why we suspected that the problem was with the in-memory cache.

  • kubernetes

    Production-Grade Container Scheduling and Management

    Once the Minimum Viable Product (MVP) was reached, we deployed the first version to production on a Kubernetes service. After a while, we started to have some traffic on our server, as expected, and the problems were also appearing.

  • Express

    Fast, unopinionated, minimalist web framework for node.

    In this article, we’ll be discussing a problem that we faced when using Apollo GraphQL in a production environment and how we managed to solve it. To do so, we’ll compare two different GraphQL runtime solutions, one using ExpressJS and the other one using Fastify, and also analyze the implementation details and show you some benchmarks.

  • node-clinic

    Clinic.js diagnoses your Node.js performance issues

    To compare the two servers, we used two packages. The first one was ClinicJS, an open-source set of tools used to diagnose NodeJS performance issues, which also gives you suggestions and points you in a direction to fix the diagnosed problems. The second one was hey, a CLI tool to send some load to the server. Below we show how we use them and the results of these comparisons.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts