Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add webhook output plugin #45

Merged
merged 8 commits into from
Jun 25, 2024
Merged

Add webhook output plugin #45

merged 8 commits into from
Jun 25, 2024

Conversation

eminano
Copy link
Collaborator

@eminano eminano commented Jun 25, 2024

This PR adds a webhook output plugin, composed of:

  • Subscription store: where the webhook subscriptions are stored. For now this only includes a postgres implementation, but caching will be added in a separate PR to minimise calls to the persistent store and improve the latency of the processor.
  • Subscription server: simple HTTP server where users can send requests to register/unregister subscriptions to the wal events. It updates the subscription store.
  • Webhook notifier: processes wal events, implementing the wal processor interface. It uses the subscription store to retrieve the relevant subscriptions for the event on input, and triggers a send to the configured server url with the wal data as payload.

pgstream_webhook_plugin

A dummy webhook server tool is added. It's intended for validation purposes.

Commits have been split for ease of reviewing.

@eminano eminano requested a review from exekias June 25, 2024 09:53
Copy link
Member

@exekias exekias left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice! looking forward to a demo!

@eminano eminano merged commit c2fcf60 into main Jun 25, 2024
3 checks passed
@eminano eminano deleted the add-webhook-output-plugin branch June 25, 2024 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants