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:
Running the Golang Project
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.
Metrics for the Golang Service
Access the Dashboard at localhost:3000/d/watermill. See what changes when you send more webhooks over time.