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
- Step 1: Deploy with nothing but your browser at Hasura Cloud (or run with Docker)
- Step 2: Run this SQL (gist) that creates a table and loads some sample data
- 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.