I have some experience using Hasura.
I've had a fantastic experience using GraphQL on the front end, but have found it confusing and challenging to configure everything properly on the back end.
Hasura takes care of all the back end setup, you use it simply to configure your own api. You can either self-host, or use them as a service (I believe they're built on top of aws).
For more context, I used it to build a react native app, and used apollo codegen to generate typescript types for all my queries, mutations, and subscriptions
The free version doesn't support response caching, only the enterprise one. If you reach any kind of scale it's a one-way ticket to enterprise, or a complete rewrite, at least last I checked.
I too wish hasura supported query caching in OSS. Not sure if you need to rewrite exactly, though. You could put something like GraphCDN in front of it or write your own cache layer that works similar to GraphCDN.
I think the poster might have meant to reply to the top comment:
> "On the other hand, when you are the one to implement the Graphql server, it feels like writing your own database. You have to create a query plan, handle optimizations, corner cases, etc."