What does HackerNews think of graphql-engine?

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

Language: TypeScript

#1 in API
#1 in GraphQL
#2 in Haskell
#5 in MySQL
#4 in PostgreSQL
#2 in REST API
Hasura (https://github.com/hasura/graphql-engine) is quite big project. Although it should be less than 100K LOC.

It was only once when I saw problem that could be considered a bug.

As a non-Haskeller, the only tool I can think of interacting with that has any Haskell is Hasura's graphql-engine[0], which GitHub stats say is 28% Haskell (and then like 55% web languages, so I assume the backend is all Haskell and the web languages are for the UI it presents etc)

Are there other popular Haskell tools? Or is it more of an academic language? I was surprised to see it on the GitHub repo.

[0]: https://github.com/hasura/graphql-engine

First thing that came to mind was in one of the "Postgres-backend" projects like Hasura[1], Postgraphile[2], or PostgREST[3].

[1]: https://github.com/hasura/graphql-engine/

[2]: https://www.graphile.org/postgraphile/

[3]: https://postgrest.org

Hasura [0], Postman [1], and ERPNext [2] are leading the FOSS charge from India. In ERPNext's case, they remained bootstrapped for 10 years (seed investment from rainmatter.in in Nov 2020) despite having to compete with SAP.

See also: https://github.com/collections/made-in-india

[0] https://github.com/hasura/graphql-engine

[1] https://github.com/postmanlabs/newman

[2] https://github.com/frappe/erpnext

Hasura isn't proprietary though? It's OSS software, code lives on the GH repo:

https://github.com/hasura/graphql-engine

Another rule/heuristic that seems to work well, along with Rule 4 from the article, is having a limited number of golden tickets per team. A golden ticket gets used up when you use a "new shiny thing" or "cool but not widepsread" thing.

For us, the risky choice in our stack [1] was Haskell. It's been amazing and has paid off immensely, but the challenges are very real. Over time we've wanted to go whole in on things like ReasonML too, but we haven't pulled the trigger or made safer choices, because that one golden ticket has been used up.

(I can't take credit for coming up with this, but I don't know who did! I'm sure it's already better articulated somewhere.)

[1] https://github.com/hasura/graphql-engine

I'm a big fan of Firebase and have seen a lot of projects get up and running very quickly and scale as well.

However, I think there are an increasing amount of reasons why you want to have your data stored in a SQL database that you can access. The open source tooling being built around SQL (usually Postgres) as a standard is becoming better and better and it's going to be hard for Firebase to compete with all those offerings. If I run a Postgres database I can instantly have tools like Hasura [0], Metabase [1] along with others that add a ton of value out of the box. However, maybe those tools will also integrate with Firebase.

Anyway, my point is that this is best of both worlds, so great to see!

[0] https://github.com/hasura/graphql-engine [1] https://www.metabase.com/

Hasura / Haskell Engineer / Remote

Hasura[1] is an open-source[2] tech company focussed on making data-access scalable, secure and easy. The Hasura GraphQL engine provides instant realtime GraphQL APIs and an eventing system on Postgres / GraphQL and REST data sources.

We're hiring senior/experienced Haskell engineers to work on the Hasura GraphQL engine. Specifically, we're excited to bring on Haskell Engineering Managers!

More details at: https://hasura.io/careers

[1] https://hasura.io [2] https://github.com/hasura/graphql-engine

Don't get me wrong, I agree with most of your points as I'd prefer to work with Node than Haskell, but I still don't see how it is "way ahead" of the other options outside of personal preference.

Unless I'm missing something, Hasura is FOSS too.

https://github.com/hasura/graphql-engine

True, Hasura does not have plugins (AFAIK) but you can extend it's funcitonality via webhooks and PG views.

As for authorization it may give them more flexibility to roll their own.

Anyway, thanks for bringing up PostGraphile. I'll check it out!

Hasura / Haskell Engineer / Remote

Hasura[1] is an open-source[2] tech company focussed on making data-access scalable, secure and easy. The Hasura GraphQL engine provides instant realtime GraphQL APIs and an eventing system on Postgres.

We're hiring senior/experienced Haskell engineers to work on the Hasura GraphQL engine.

More details at: https://hasura.io/careers

[1] https://hasura.io [2] https://github.com/hasura/graphql-engine

I am a fan of opinionated full-stack frameworks, in particular for building B2B web applications which contain lots of CRUDL views.

For an open-source solution that largely revolves around the React frontend, consider react-admin [1] + its adapter for Hasura [2].

[1]: https://github.com/marmelab/react-admin [2]: https://github.com/hasura/ra-data-hasura, https://github.com/hasura/graphql-engine/

In Ruby/Rails-land, there is https://bullettrain.co.

Hasura | San Francisco / Remote | Full time

Hasura[1] is an open-source[2] tech company dedicated to make data-access stateless, secure and easy. The Hasura GraphQL engine provides instant realtime GraphQL APIs and an eventing system on Postgres.

We're hiring senior/experienced Haskell engineers to work on the Hasura GraphQL engine.

More details at: https://hasura.io/careers

[1] https://hasura.io [2] https://github.com/hasura/graphql-engine

Hasura | San Francisco / Bangalore / Remote | Full time

Hasura[1] is an open-source[2] tech company dedicated to make data-access stateless, secure and easy. The Hasura GraphQL engine provides instant realtime GraphQL APIs and an eventing system on Postgres.

We're hiring Haskell, React, Golang engineers. All job descriptions here: https://hasura.io/careers

[1] https://hasura.io [2] https://github.com/hasura/graphql-engine

Senior Haskell Engineer @ HASURA | Full-time & Consultants | REMOTE

hasura.io is hiring senior Haskell developers. We build tools for developers to reduce the effort that goes into building backends for applications. One of our core products is the opensource graphql-engine which gives the developer a realtime GraphQL backend on a Postgres database: https://github.com/hasura/graphql-engine

Requirements: We are looking for someone who - has Haskell experience - has architected large scale applications in Haskell - has an understanding of the current best practices for writing production code - knows how to optimise Haskell code for performance

Good to have: - Experience working with relational databases

Location: Bangalore, India or remote.

How to apply: If this role interests you, please reach out to us at work [AT] hasura.io. Please mention HN and let us know if you're looking for a full-time role or short term consulting.

We built https://github.com/hasura/graphql-engine , https://hasura.io that sets up the plumbing for this architecture with state being Postgres.

There’s a lot of other tooling emerging in this direction too. For example, set up a GraphQL server and subscriptions with Postgres and listen/notify and use SQS with lambda. Or dbezium + Kafka + custom service for event delivery.

Hasura's homepage[0] links to their Github[1], so it's definitely open source. The "Enterprise" section of the website seems a bit lite and all the pricing information is on the "Support" tab, so the business model seems to be support-based. I only skimmed so I can't speak to what missing features there might be if you roll-your-own.

[0]: https://hasura.io/

[1]: https://github.com/hasura/graphql-engine

Hi HN! We wrote this CLI to explore migrating from Firebase to Postgres as easily as possible.

We use Hasura[1] to generate the realtime GraphQL API on Postgres automatically. The CLI tool's work then mostly boils down to 2 things, which we do in phases:

1. Phase I: We migrate firebase data nodes to Postgres tables in a fairly naive way. We setup automatic IDs and parent-child tables and set up relationships between the tables. This gives you a write-many type GraphQL API on postgres. Realtime GraphQL with subscriptions and live-queries replaces firebase realtime

2. Phase II: As an optional next step, we try to normalise data by detecting overlapping data between tables. We delete "subset" tables and set up relationships to the superset table.

I've written up a blogpost with more details here: https://blog.hasura.io/firebase2graphql-moving-from-firebase...

[1] https://github.com/hasura/graphql-engine , https://hasura.io

SQL could actually be an API language without needing to be wrapped in JSON/GraphQL. Building a GraphQL backend makes you deal with a GraphQL AST, parse it, process it and so on. GraphQL backends are hard to build because naive implementations can't "optimise" the AST and resolve to making individual data calls for each node in the AST. But considering the tooling around GraphQL on the server and client side, it would have been amazing to have that API tooling around SQL! Assuming that writing an SQL parser, hooking into the AST to run the business logic or to add auth rules, and then use great client side libraries like jooq [1], massivejs [2] to be able to construct SQL queries programmatically, SQL as an API could have been a very feasible and neat idea!

The similarities between GraphQL and SQL are many on the surface. Another nice parallel that the blogpost doesn't mention is the idea of query variables in GraphQL which is reminiscent of prepared statements + variables in Postgres.

We believe in a similar thesis at Hasura[3], where the idea is to give app developers GraphQL on SQL (Postgres) with minimal abstraction. However, we've had to do a lot of work to support "application level" authorization so that read/write permissions are controlled through the applications auth system and make it a more complete solution.

In fact, our initial version was basically a JSON DSL very similar to datasette, and we switched to GraphQL primarily because the client-side tooling is quite amazing.

[1] https://www.jooq.org/

[2] https://github.com/dmfay/massive-js

[3] https://github.com/hasura/graphql-engine

Hasura - https://github.com/hasura/graphql-engine Show HN: https://news.ycombinator.com/item?id=17540263

We'd been building the tech (realtime GraphQL on Postgres) for a while, but the HN launch gave us the initial visibility and a tremendous number of users, reviews. And within the last few weeks we have several users in production and enterprise clients too. :)