Abstract
A couple of years ago, I worked on a project with high scalability and resiliency requirements. Event-driven architecture would be the perfect fit there. Unfortunately, nobody else on the team felt comfortable using event-driven architecture. I asked myself: "What can I do to make building event-driven applications as simple as an HTTP server?". This was the moment when Watermill was born.
A couple of years later, Watermill became the most popular Go library for building Event-Driven applications, used by numerous companies, more than 50 contributors, and over 6k stars on GitHub.
During this talk, I will share the design decisions that made Watermill so simple to use and extend. I will show how we applied the UNIX philosophy and used generics to implement the CQRS pattern. I will also share our secret of creating reusable tests that make adding new Pub/Sub implementations much easier.
I will also show a short live demo of how Watermill works in practice.