ThreeDotsLabs/watermill
Building event-driven applications the easy way in Go. observed · 2026-08-28
Health v2 · maintenance only
95/100
- Activity 99
- Release rhythm 87
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 53
- age_days: 2855
- days_rel: 8
- days_push: 8
- n_releases_24m: 12
Adoption not part of the score
9864 stars · 504 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
Watermill is a Go library for building event-driven and message-driven applications over a unified Pub/Sub API. It supports Kafka, RabbitMQ, NATS, PostgreSQL, Redis, and more, with routing, middleware, CQRS, sagas, and event sourcing built in.
Use cases
- build event-driven applications in go
- publish and consume messages with kafka or rabbitmq
- implement cqrs and event sourcing in go
- process message streams asynchronously
- implement sagas and outbox pattern
- switch message brokers without changing app code
When to choose
- you want a unified pub/sub abstraction over multiple brokers in Go
- you need event sourcing, CQRS, or sagas without a heavy framework
- you want middleware-based message routing similar to an HTTP router
When to avoid
- you need a full message broker itself rather than a client library
- your project is not in Go
- you need exactly-once delivery guarantees out of the box
Facets
library · maturity active
message-queue streaming middleware serialization rpc workflow-automation backend microservices developer-tools apis go cross-platform cloud event-driven event-sourcing cqrs sagas pub-sub kafka rabbitmq nats stream-processing reactive messaging docker kubernetes
3 sources
- readme: https://github.com/ThreeDotsLabs/watermill · fetched 2026-08-28 · 0b628112fa96
- homepage: https://watermill.io · fetched 2026-08-29 · 70799fbb65f0
- site_page: https://watermill.io/learn/getting-started · fetched 2026-08-29 · 9e66cf1be0a4
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| ThreeDotsLabs/watermill | main | 95 |
For agents
markdown · JSON · MCP: product_card(name="ThreeDotsLabs/watermill")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem