Hacker News new | ask | show | jobs
Show HN: Watermill – A Go library for building event-driven services (watermill.io)
2 points by roblaszczak 615 days ago
1 comments

Hey, it's Robert here, author of the library.

A few years ago, I worked on a project where we wanted to use Event-Driven architecture. But most team members were unfamiliar with it and uncomfortable working with asynchronous architecture. I asked myself: "Is it possible to make building an Event-Driven application as simple as building an HTTP API?" — and that's how Watermill was born.

We currently support 12 Pub/Subs, including Kafka, Redis, AMQP, and NATS. We also support MySQL and PostgreSQL-based Pub/Subs, so you can use Watermill even if you don't want to add extra infrastructure to your tech stack.

It's handy for: 1. Building event-driven services 2. Implementing CQRS architecture 3. Creating complex message processing pipelines

We also support poison queues and the outbox pattern out of the box and provide middleware that supports logging, retries, and circuit breaking.

Watermill is an independent project under the MIT license. We don't plan to get VC funding, and nobody from outside can force us to change the license to monetize the project.

We released Watermill v1.0 more than five years ago, and since then, we have kept backward compatibility.

We plan to release v1.4 soon, including updated poison queue support and sending delayed messages.

I'd love to hear your thoughts and feedback. If you have any questions, I'm happy to answer!

Links: GitHub: https://github.com/ThreeDotsLabs/watermill Documentation: https://watermill.io/ Examples: https://github.com/ThreeDotsLabs/watermill/tree/master/_exam...

This is a very nice library; worked with it a few years back and really liked it.

Glad to see it's not abandoned (which usually happens with libs you haven't worked for a few years)!

Glad to hear that!