PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3693 Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com> GitOrigin-RevId: e27ae1727496acb1077433d5715df39edc438b06
4.8 KiB
Event triggers on Postgres
Trigger webhooks on database events using Hasura GraphQL Engine's event triggers.
Highlights
-
Build reactive & async apps/features: Trigger asynchronous serverless or cloud functions to reduce infrastructure costs and simplify DevOps for developers.
-
Atomic & Reliable: Using native Postgres triggers, every relevant action on the database is captured as an event. Even if Hasura is down or being updated, events will be captured and delivered as soon as possible with an atleast-once guarantee. You can even configure delivery policies like
max_retries
andretry_interval
. -
Scalable: The event-triggers system is horizontally scalable - if you need to handle more events, just throw more resources at it!
-
Works with existing, live databases: Point it to an existing Postgres database to instantly listen to changes in your data and invoke webhooks.
-
Ready for observability & monitoring: Generated events are automatically instrumented with an event-id and structured logs emitted by Hasura make it easy for you to use your favourite tools to run an event-driven backend in production (watch an overview using Honeycomb).
Quickstart:
One-click deployment on Heroku
The fastest way to try event triggers out is via Heroku.
-
Click on the following button to deploy GraphQL Engine on Heroku with the free Postgres add-on:
-
Open the Hasura console
Visit
https://<app-name>.herokuapp.com
(replace <app-name> with your app name) to open the admin console. -
Configure your first event trigger and webhook
Create a table, configure the database update you want to use as a trigger and instantly invoke a webhook by adding a new row in your table. Follow this simple guide.
Other deployment methods
For Docker-based deployment and advanced configuration options, see deployment guides.
Demo (30 seconds)
Create an event-trigger and webhook in 60 seconds
Serverless boilerplates
Use one of the serverless trigger
boilerplates to deploy a webhook
that can capture database events.
Serverless/cloud-function platforms covered by boilerplates:
Architecture
Demos & Tutorials: Building reactive & async apps/features
Notifications
Trigger push notifications and emails based on database events. Try the demo and tutorial below to see how browser push notifications are triggered when the user inserts some data:
Data transformation (ETL)
Transform and load data into external data-stores. Check out this demo and tutorial below to see how Postgres data is transformed to build and populate an Algolia index:
Building reactive UX for your async backend with realtime GraphQL
Propagate event-driven and asynchronous information to UI clients easily with GraphQL subscriptions & live-queries.
Watch: Building a reactive app with an async backend (04:15 mins)
Translations
This document is available in the following translations: