Need advice about which tool to choose?Ask the StackShare community!

GraphQL

33K
27.2K
+ 1
310
Hasura

328
627
+ 1
144
Add tool

GraphQL vs Hasura: What are the differences?

Introduction GraphQL and Hasura are both powerful tools used in web development. While GraphQL is a query language for APIs and a runtime for executing those queries with an existing data model, Hasura is an open-source engine that connects to various databases and auto-generates a GraphQL API. Although they have similarities in terms of providing a GraphQL interface, there are key differences between the two.

  1. Schema Stitching: GraphQL allows combining multiple GraphQL schemas into a single cohesive schema, also known as schema stitching. This enables the composition of multiple APIs in a flexible manner. On the other hand, Hasura does not support schema stitching out of the box, as it focuses on generating a GraphQL API from an existing database schema.

  2. Authentication and Authorization: GraphQL provides a flexible mechanism for handling authentication and authorization, allowing developers to define their own logic. Hasura, as a complementary tool to GraphQL, provides built-in role-based access control (RBAC) that integrates seamlessly with an existing authentication system. This simplifies the implementation of access control rules and permissions.

  3. Real-time Subscriptions: GraphQL Subscriptions enable real-time data updates by establishing a persistent connection between the client and the server, allowing the server to push data to the client when changes occur. Hasura makes it easy to implement real-time subscriptions by setting up triggers on database events. GraphQL itself does not have built-in support for real-time subscriptions.

  4. Database Tracking and Migrations: GraphQL does not provide built-in capabilities for tracking database changes or performing database migrations. Hasura, as a data layer tool, tracks changes made to the database schema and automates the generation of the GraphQL API. It also supports database migrations, making it easier to evolve the database schema over time.

  5. Performance Optimization: GraphQL allows clients to specify exactly what data they need, reducing the problem of over-fetching or under-fetching. Hasura optimizes query execution by generating efficient SQL queries based on the GraphQL query. It further provides caching mechanisms and performance optimizations to enhance query execution speed.

  6. Data Fetching from Multiple Sources: GraphQL supports fetching data from multiple sources, such as databases, REST APIs, and even other GraphQL APIs, by defining resolvers. Hasura, being a single-tool solution, primarily focuses on using database as a data source. While it can integrate with other APIs, fetching data from multiple sources may require additional implementation and configuration.

In Summary, although both GraphQL and Hasura provide a GraphQL interface, they differ in terms of schema stitching capabilities, authentication and authorization mechanisms, real-time subscriptions, database tracking and migrations, performance optimizations, and data fetching from multiple sources.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of GraphQL
Pros of Hasura
  • 75
    Schemas defined by the requests made by the user
  • 63
    Will replace RESTful interfaces
  • 62
    The future of API's
  • 49
    The future of databases
  • 13
    Self-documenting
  • 12
    Get many resources in a single request
  • 6
    Query Language
  • 6
    Ask for what you need, get exactly that
  • 3
    Fetch different resources in one request
  • 3
    Type system
  • 3
    Evolve your API without versions
  • 2
    Ease of client creation
  • 2
    GraphiQL
  • 2
    Easy setup
  • 1
    "Open" document
  • 1
    Fast prototyping
  • 1
    Supports subscription
  • 1
    Standard
  • 1
    Good for apps that query at build time. (SSR/Gatsby)
  • 1
    1. Describe your data
  • 1
    Better versioning
  • 1
    Backed by Facebook
  • 1
    Easy to learn
  • 23
    Fast
  • 18
    Easy GraphQL subscriptions
  • 16
    Easy setup of relationships and permissions
  • 15
    Automatically generates your GraphQL schema
  • 15
    Minimal learning curve
  • 13
    No back-end code required
  • 13
    Works with new and existing databases
  • 12
    Instant production ready GraphQL
  • 11
    Great UX
  • 4
    Low usage of resources
  • 4
    Simple

Sign up to add or upvote prosMake informed product decisions

Cons of GraphQL
Cons of Hasura
  • 4
    Hard to migrate from GraphQL to another technology
  • 4
    More code to type.
  • 2
    Takes longer to build compared to schemaless.
  • 1
    No support for caching
  • 1
    All the pros sound like NFT pitches
  • 1
    No support for streaming
  • 1
    Works just like any other API at runtime
  • 1
    N+1 fetch problem
  • 1
    No built in security
  • 3
    Cumbersome validations

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is GraphQL?

GraphQL is a data query language and runtime designed and used at Facebook to request and deliver data to mobile and web apps since 2012.

What is Hasura?

An open source GraphQL engine that deploys instant, realtime GraphQL APIs on any Postgres database.

Need advice about which tool to choose?Ask the StackShare community!

What companies use GraphQL?
What companies use Hasura?
See which teams inside your own company are using GraphQL or Hasura.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with GraphQL?
What tools integrate with Hasura?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

GitHubDockerReact+17
40
36244
GitHubPythonNode.js+47
54
72303
What are some alternatives to GraphQL and Hasura?
gRPC
gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking...
Falcor
Falcor lets you represent all your remote data sources as a single domain model via a virtual JSON graph. You code the same way no matter where the data is, whether in memory on the client or over the network on the server.
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
graphql.js
Lightest GraphQL client with intelligent features. You can download graphql.js directly, or you can use Bower or NPM.
MongoDB
MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
See all alternatives