An example Event-Driven application written in Go, using the Golang library Watermill.
The project aims to integrate incoming GitHub webhooks with Slack and Grafana, adding annotations and sending messages when a new commit is pushed. There are also simulated deployment messages sent over RabbitMQ to demonstrate working with multiple event streams.
A result can look like this:
If you’d like to integrate the example with your Slack workspace, copy
.env and fill in the webhook URL in
In addition to the application, the docker-compose environment consists of:
- Kafka and ZooKeeper
The whole environment can be run with:
Now you can configure your GitHub repository to send webhooks to the application (you need to expose port
8080 to the external network first).
Alternatively, you can run
./scripts/send-stub-webhook.sh to send some stub webhooks.
Visit localhost:3000/d/webhooks to see annotations added in Grafana. Use
admin:secret as credentials.
Access the Dashboard at localhost:3000/d/watermill. See what changes when you send more webhooks over time.