Instant streaming GraphQL APIs with built-in authorization for Postgres

Hasura provides a streaming GraphQL API (subscriptions) on your Postgres database, so that you can securely stream data to apps and services with minimal setup.

1. No additional moving parts

  • You don’t need a custom SDK. There is no duplication of data and no need to deal with consuming events and data from multiple sources of truth (eg: a queue and a persistent DB)
  • You don’t worry about missing events, duplicate events or data-synchronization on the client

2. Fine-grained RLS style authorization

  • Control what data and fields in the data are consumable by the client

3. Scale with Postgres

  • Scale reads the way you would scale Postgres reads, and scale writes the way you would scale Postgres ingestion (or in-case of a firehose, ingest into a buffer first).

4. Zero-ops websockets

  •  Hasura handles horizontally scaling your websockets layer, cursor management and authorization with predicate push-down.
  • Benchmarked to handle 1M concurrent GraphQL clients streaming from 10000 channels with 1M events ingested every minute – on a single instance of Postgres RDS.

## Try it out in 60 seconds

  1. Step 1: Deploy with nothing but your browser at Hasura Cloud (or run with Docker)
  2. Step 2: Run this SQL (gist) that creates a table and loads some sample data
  3. Step 3: Run a GraphQL subscription to start streaming!
```graphql
subscription {
messages (cursor: {initial_value: {id: "0"}}, batch_size: 5) {
id
message
}
}
```

The Featured Blog Posts series will highlight posts from partners and members of the All Things Open community leading up to the conference in the fall.