Hey, it's Robert here, author of the library.<p>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.<p>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.<p>It's handy for:
1. Building event-driven services
2. Implementing CQRS architecture
3. Creating complex message processing pipelines<p>We also support poison queues and the outbox pattern out of the box and provide middleware that supports logging, retries, and circuit breaking.<p>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.<p>We released Watermill v1.0 more than five years ago, and since then, we have kept backward compatibility.<p>We plan to release v1.4 soon, including updated poison queue support and sending delayed messages.<p>I'd love to hear your thoughts and feedback. If you have any questions, I'm happy to answer!<p>Links:
GitHub: <a href="https://github.com/ThreeDotsLabs/watermill">https://github.com/ThreeDotsLabs/watermill</a>
Documentation: <a href="https://watermill.io/" rel="nofollow">https://watermill.io/</a>
Examples: <a href="https://github.com/ThreeDotsLabs/watermill/tree/master/_examples">https://github.com/ThreeDotsLabs/watermill/tree/master/_exam...</a>