Quick take on Hasura: a daemon for GraphQL on Postgres

By James Governor

Sometimes the post writes itself. When I spoke to the founders of Hasura, Rajoshi Ghosh and Tanmai Gopal, last year I couldn’t help but be impressed. They had released a GraphQL project that within a week was trending in top places on both Hacker News and GitHub. It now has 7500 stars on GitHub. Hasura maps really well to current emerging patterns of development, notably serverless, two tier models, as delineated by Joe Emison here. I have also written a bit about why GraphQL is significant. Developers don’t need to spend their time writing and managing bespoke code to persistence layers, worrying about fine-grained access control in back end systems. AWS AppSync is the market-making managed GraphQL service, because it ties in so well to AWS Lambda serverless technology. GraphQL began life as a Facebook project, but now it’s been enthusiastically adopted by properties including GitHub, GitLab, The New York Times and New Relic.
Hasura had started life as company offering managed Kubernetes services, but that’s a market which is super-crowded, with major entrenched competition. So a pivot was always going to make sense. Hasura makes it easy for a developer to take a Postgres databases, and package a table or a view as a GraphQL endpoint. It works with native Postgres triggers for event-based programming – updating front ends in real time. You can easily set up a webhook listener for a database event, and can expose all tables and keys specifying relationships as GraphQL within a couple of clicks, and add new relationships even with a live application. It’s pretty cool, and feels like it makes a ton of sense for Postgres users looking to modernise their apps.
Perhaps surprisingly Ghosh and Gopal believe there is a lot of untapped demand for enterprise GraphQL, rather than it simply being a web company phenomenon at this point.
“At first we though the market was a little advanced for enterprises. but then we got the call. Companies had been building their own API platform over the last 5 years, but they wanted to talk about GraphQL. Perhaps they have a lot of internal services, or had acquired a startup. This part of the organisation wants the rest of the development team to build apps on their service, but people aren’t doing so, because the platforms they’d built don’t make it easy enough. But everyone has a database, can use Postgres, and now suddenly developer experience is a solved problem.”
I also really like the naming story. Hasura is built in Haskell, and one of the developers thought it made sense to build a GraphQL daemon. In Sanksrit a demon is an “Asura”, and Haskell + Asura = Hasura. It’s simple, elegant, and plays to Hindu culture, which makes sense given Hasura is a Bangalore/San Francisco startup.