This example demonstrates a complete Windmill setup with Watermill, Redis Streams, and a Poison Queue.
- Redis running on
localhost:6379 - Go 1.21+
Windmill requires Basic Auth. Set these environment variables before running:
export WINDMILL_USERNAME=admin
export WINDMILL_PASSWORD=secretdocker run -d --name redis -p 6379:6379 redis:alpinego run main.goVisit http://localhost:3000 - your browser will prompt for the credentials you set above.
- Publishes messages to random topics (
orders.created,payments.processed,notifications.sent) - Consumes messages with handlers that randomly fail ~30% of the time
- Routes failed messages to the Dead Letter Queue (DLQ)
- Serves the Windmill dashboard for monitoring and managing messages
- Stream monitoring with message counts and memory usage
- DLQ management (view, requeue, delete failed messages)
- Real-time activity tracking