HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
hasura
graphql-engine
TypeScript2018–2026
hasura / graphql-engine

graphql-engine

Blazing fast, instant realtime GraphQL APIs on all your data with fine grained access control, also trigger webhooks on database events.

42Distinct people
98Mentions
1Explicit recommenders
32.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Blazing fast, instant realtime GraphQL APIs on all your data with fine grained access control, also trigger webhooks on database events.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

The Use The Index Luke material about this is essential background reading, but in terms of actually implementing: My favorite SQL implementation of cursor-based keyset…

dmitryminkovsky used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:01:28 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year98 dated mentions

Observed mentions: 2018-07-16 10:58:24 UTC to 2026-04-09 17:18:26 UTC.

051015202018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 15 mentions; 6 submissions, 9 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 20 mentions; 6 submissions, 14 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 22 mentions; 4 submissions, 18 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 21 mentions; 4 submissions, 17 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 13 mentions; 7 submissions, 6 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC1569
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC20614
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC22418
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC21417
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC1376
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC312
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC211
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Hasura GraphQL Engine The Hasura engine is an open source project which supercharges the building of modern applications by providing access to data via a single, composable, secure API endpoint. Hasura V3 The future of data delivery is GA: Supporting PostgreSQL (and its flavors), MongoDB, ClickHouse, and MS SQL Server. Also supports writing custom business logic using the Typescript, Python, and Go Connector SDKs. Here is the recommended Getting Started guide on DDN. The Hasura v3 engine code, which powers Hasura DDN, is in the v3 folder of this repo. You can find more detailed information about this v3 README. The Hasura DDN architecture includes Data Connectors to connect to data sources. All Hasura connectors are also available completely open source. Check out the Connector Hub which lists all available connectors. Hasura V2 Hasura V2 is the current stable version of the Hasura GraphQL Engine. Please find more detailed information about the V2 Hasura Graphql Engine in the v2 folder and this README. Cloning repository This repository is a large and active mono-repo containing many parts of the Hasura ecosystem and a long git history, that can make the first time cloning of the repository slow and consume a lot of disk space. We recommend following if you are facing cloning issues. Shallow clone This will only clone the latest commit and ignore all historical commits. git clone https://github.com/hasura/graphql-engine.git --depth 1 Git checkout with only Hasura V3 engine code git clone --no-checkout https://github.com/hasura/graphql-engine.git --depth 1 cd graphql-engine git sparse-checkout init --cone git sparse-checkout set v3 git checkout @ This checkouts the top level files and only the v3 folder which contains the Hasura V3 Engine code. Support & Troubleshooting To troubleshoot most issues, check out our documentation and community resources. If you have encountered a bug or need to get in touch with us, you can contact us using one of the following channels: Hasura DDN documentation: DDN docs Hasura V2 documentation: V2 docs Support & feedback: Discord Issue & bug tracking: GitHub issues Follow product updates: @HasuraHQ Talk to us on our website chat Code of Conduct We are committed to fostering an open and welcoming environment in the community. Please see the Code of Conduct. Security If you want to report a security issue, please read this. Stay up to date Join our communities to stay up to date on announcements, events, product updates, and technical blogs. https://hasura.io/community/ Contributing Check out our contributing guide for more details. Brand assets Hasura brand assets (logos, the Hasura mascot, powered by badges etc.) can be found in the v2/assets/brand folder. Feel free to use them in your application/website etc. We'd be thrilled if you add the "Powered by Hasura" badge to your applications built using Hasura. ❤️ Licenses V3 All the Data Connectors are available under the Apache License 2.0. The core V3 GraphQL Engine is intended to be licensed under the Apache License 2.0 (Apache-2.0). V2 The V2 core GraphQL Engine is available under the Apache License 2.0 (Apache-2.0). All other contents in the v2 folder (except those in server, cli and console directories) are available under the MIT License. This includes everything in the docs and community directories.
Read the full README on GitHub

What Hacker News says

21 sources
It's a VERY fragile support: https://github.com/hasura/graphql-engine/issues/6648 Basically, if two entities in the databases have the same names, Hasura fails unless you manually define a unique `custom_name` for each such entity. Given that the most common multiple database scenario involves different databases with either the exact same schema (one-db-per-tenant) or similar schemas (staging vs. production database), it forces you to painstakingly set a custom_name for basically every single entity in your db. Thankfully there is an API so in theory you could set this programmatically, but it still means that your client code needs to be manually kept in-sync with whatever custom name generator rule you used.
In Pg_GraphQL: A GraphQL Extension for PostgreSQL
If you're using GraphQL with SQL -- postgres specifically -- I would say use Hasura, but support between Hasura & CockroachDB seems to have stalled due to missing triggers [0] [1]. CRDB supports a feature called "changefeeds" [2] which is claimed might cover some of Hasura's use-cases, but that's a proprietary extension not present in base PostgreSQL. [0]: https://github.com/hasura/graphql-engine/issues/678 [1]: https://github.com/cockroachdb/cockroach/issues/28296 [2]: https://www.cockroachlabs.com/docs/v21.1/stream-data-out-of-...
In How we built a serverless SQL database
Are the authors of this paper present/the ones who posted? This is really interesting. One thing I'm curious about -- is this technique applicable to applications which do JIT "compilation" in the business-logic/abstract sense of the term? Realworld usecase: Hasura is fundamentally a Haskell GraphQL-to-SQL JIT compiler/transpiler. It parses, lowers to an internal IR format, and then translates to a specific SQL dialect. I'm wondering if any of this would carry over to a usecase like that? https://github.com/hasura/graphql-engine/blob/master/server/src-lib/Hasura/RQL/IR/… https://github.com/hasura/graphql-engine/blob/master/server/src-lib/Hasura/Backend… Nonetheless, will be interesting to see whether this technique will get adopted by LLVM or some of the major WASM runtimes. I won't pretend to und
Read the rest
erstand the majority of what the writeup stated, but on paper it seems a huge speedup?
In Copy-and-Patch: Fast JIT Compilation for SQL, WebAssembly, and Others
Hasura evaluated Postgres' listen/notify feature to power their subscriptions, but chose polling instead: https://github.com/hasura/graphql-engine/blob/master/archite... > Listen/Notify: Requires instrumenting all tables with triggers, events consumed by consumer (the web-server) might be dropped in case of the consumer restarting or a network disruption. It was substantially non-trivial for them to implement subscriptions that were both robust and efficient using this approach. Many applications need the extra step on top of listen/notify of relaying subscriptions to an untrusted client (e.g., a browser). I'd like to see more DBs bake that feature in, like RethinkDB did.
In Ask HN: What could a modern database do that PostgreSQL and MySQL can't
Noted! The CLI (esp. the new configv3), splits the metadata into modular YAML files for much easier config/review etc so that makes things easier. There's still more work to do here to make this easier. Another option, if you're dealing with the metadata JSON directly, is also to write that entire metadata in code and spit out JSON. @gavinray put together an amazing typescript SDK to write all the metadata in code: https://github.com/hasura/graphql-engine/tree/master/contrib...
In Hasura GraphQL Engine 2.0
Yes! We announced experimental support earlier and here's the new spec we're implementing that will support all databases and remote schemas too. https://github.com/hasura/graphql-engine/issues/6991 General support for inherited roles is one of the things I'm most excited about because it makes a bunch of hard things around reusing and composition so easy. This improvement plays really well along with things like "role-based schemas" so that GraphQL clients have access to just the exact GraphQL schema they should be able to access - which is in turn composed by putting multiple scopes together into one role. Also interesting is how well this could play with other innovations on the GraphQL client ecosystem like gqless[1] and graphql-zeus[2] because now there's a typesafe and secure SDK for really smooth developer experience on the client
Read the rest
In Hasura GraphQL Engine and SQL Server
I wouldn't say it's a particularly great upside, but I've found tooling doesn't tend to work as well with UUID keys as it does integer keys. E.g., Hasura won't map UUID keys to the GraphQL ID type [1], which makes working with them unnecessarily difficult. Arguably, the issue should be fixed with the tool (or a different tool chosen), but there's only so many battles to pick and sometimes that decision is out of your control. [1] -- https://github.com/hasura/graphql-engine/issues/3578
In UUID, serial or identity columns for PostgreSQL auto-generated primary keys?
Yeah in my case I am using Postgres via Hasura, which exposes the Postgres DB via a GraphQL API, which in turn can be used to generate types. Unfortunately the nullability of fields in a Postgres view cannot be determined, so all fields in the corresponding types are nullable [0], even if they aren’t in the actual underlying table. So I end up using ! a lot because I know the field is non null in Postgres. It’s a unfortunate. [0] https://github.com/hasura/graphql-engine/issues/1965
In Java for Everything (2014)

Showing the 15 most recent of 21 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.