The GraphQL API served by Hasura should be continuously operational, so we should remove any single point of failure for reliable application infrastructure. Fundamentally there are two aspects to the GraphQL API being consumed - the availability of the Postgres database and the availability of Hasura.
Postgres offers various solutions for configuring a highly available system. Most managed Postgres providers have a HA system that will automatically failover to standby Postgres. With Heroku, here's how we can set up a replication to ensure there is a Hot standby server to provide automated failover.
There is no configuration required at the Hasura project level.
You can run multiple instances of Hasura with the open-source graphql-engine. In Hasura Cloud, the process of automatically scaling and the infrastructure required is taken care of without requiring manual intervention.
Also, with multiple instances of Hasura connected to the same database, you might run into issues such as the event triggers duplicating events or unreliable subscriptions. Hasura HA eliminates those issues.
- Build apps and APIs 10x faster
- Built-in authorization and caching
- 8x more performant than hand-rolled APIs