graphql-engine/event-triggers.md

4.6 KiB

Event triggers on Postgres

Trigger webhooks on database events using Hasura GraphQL Engine's event triggers.

Event triggers demo

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 and retry_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.

  1. Click on the following button to deploy GraphQL Engine on Heroku with the free Postgres add-on:

    Deploy to Heroku

  2. Open the Hasura console

    Visit https://<app-name>.herokuapp.com (replace <app-name> with your app name) to open the admin console.

  3. 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

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

Event triggers 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.

Reactive apps architecture

Watch: Building a reactive app with an async backend (04:15 mins)