Go library for building event-driven applications.

Easy to use

Our goal was to create a tool which is easy to understand, even not by senior developers.


It doesn't matter that you want to do Event-driven architecture, CQRS, Event Sourcing or just stream MySQL Binlog to Kafka.


Watermill was designed to process hundreds of thousands of messages per second.


Every component is built in a way, that allows you to configure it for your needs. You can also implement your middlewares to the router.


Watermill is using proven technologies and has a strong unit and integration tests coverage for the critical functionalities.

A detailed explanation of why we build Watermill you can find in our Introducing Watermill blog post.