Over the past few years, I've watched a sad trend: many companies are aggressively monetizing open-source. Thanks to being bootstrapped, we don't need to take that path with Watermill.
For 7 years, we've been building Watermill in the true open-source spirit—all components are open. We don't obscure documentation to push users toward our consulting services.
In that spirit, we've created a hands-on quickstart that teaches Watermill's core concepts through a real-world project. Since browser-based environments don't cut it for real-life projects, we built a custom platform that handles all the setup and verification directly in your IDE.
Rather than say more, I'd encourage you to try the quickstart yourself!
Hey, Robert here (author).
We are the opposite of companies with big funding and quick success. I also know that software engineers education is not the most viral topic here. Nevertheless, seeing success stories not following beaten paths may be valuable and eye-opening. Long-term sustainable growth and learning by building are undervaluated.
If you have any questions or feedback, I'm more than happy to hear it!
We are the opposite of companies with big funding and quick success. I also know that software engineers education is not the most viral topic here. Nevertheless, seeing success stories not following beaten paths may be valuable and eye-opening. Long-term sustainable growth and learning by building are undervaluated.
If you have any questions or feedback, I'm more than happy to hear it!
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.
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!
SlashID | Principal Backend Engineer | REMOTE (EU compatible time-zones) | Full Time
We’re an early stage startup building an identity platform. Our goal? Bring authentication for users, machines and APIs under the same (secure) umbrella (aka one identity platform to rule them all).
We’re looking for people who can design, build, and maintain distributed systems at scale. You’re also driven, product-oriented and enjoy getting your hands dirty; extra points for experience in security.
Stack: Go, GCP, Redis, PostgreSQL, Docker, Terraform. You don't need experience with all these but should be willing to learn).
With my friend Miłosz, we've been working on a way for experienced developers to grasp Go quickly. After long evenings and weekends, we're ready to share our idea that we think is unique.
Many Go courses cover lots of details irrelevant to most developers. The difficulty level is chosen for developers with all levels of experience. Often, they consist of videos, which makes them long. Or they make you write code in the browser. We believe that it’s not the most optimal way of learning. We decided to approach this topic differently.
While learning and teaching new technologies, we found that implementing real-life projects incrementally is the best way to learn. We decided to recreate this method of learning, but in a more structured and automated way.
We created a Go training for experienced developers, containing the most relevant knowledge. It quickly makes you comfortable writing Go code.
The training is made of 80 exercises based on real-life projects and examples. You write all the code in your local editor or IDE. Our CLI provides the boilerplate code for the exercise and fast feedback about your solution.
The first four modules are free after registration. The entire training is free for students (please check the FAQ[1] for details).
We are not aware of any similar training out there. It would be great to hear your feedback!
With my friend Miłosz, we've been working on a way for experienced developers to grasp Go quickly. After long evenings and weekends, we're ready to share our idea that we think is unique.
Many Go courses cover lots of details irrelevant to most developers. The difficulty level is chosen for developers with all levels of experience. Often, they consist of videos, which makes them long. Or they make you write code in the browser. We believe that it’s not the most optimal way of learning. We decided to approach this topic differently.
While learning and teaching new technologies, we found that implementing real-life projects incrementally is the best way to learn. We decided to recreate this method of learning, but in a more structured and automated way.
We created a Go training for experienced developers, containing the most relevant knowledge. It quickly makes you comfortable writing Go code.
The training is made of 80 exercises based on real-life projects and examples. You write all the code in your local editor or IDE. Our CLI provides the boilerplate code for the exercise and fast feedback about your solution.
The first four modules are free after registration. The entire training is free for students (please check the FAQ[1] for details).
We are not aware of any similar training out there. It would be great to hear your feedback!
If new hardware or technology is totally changing your solution - it's a bad sign.
It depends a lot on the domain on which you are working on. In places where I worked, such big changes could be encapsulated and separated from the domain logic (by using Clean Architecture, for example).
This is where modelling techniques are useful - with proper exploration you can create proper boundaries that will save you from such big changes. The only thing that is constant is change. It's all about being prepared for that.
Take for example hard drives. A filesystem optimized for a spin drive will take into account that the needle has to move a physical distance and arrange files to minimize the movement of the needle.
All that goes out the door when you have an ssd which has a O(1) access to any part of the dardrive
You are right - I'm using it as as shorthand. It's referring to the "typical" monolith architecture perception.
I'm actually a big fan of modular, properly implemented monoliths. In the first blog article I was even showing that it can be actually an implementation detail if an application is monolith or microservice: https://threedots.tech/post/microservices-or-monolith-its-de...
Over the past few years, I've watched a sad trend: many companies are aggressively monetizing open-source. Thanks to being bootstrapped, we don't need to take that path with Watermill.
For 7 years, we've been building Watermill in the true open-source spirit—all components are open. We don't obscure documentation to push users toward our consulting services.
In that spirit, we've created a hands-on quickstart that teaches Watermill's core concepts through a real-world project. Since browser-based environments don't cut it for real-life projects, we built a custom platform that handles all the setup and verification directly in your IDE.
Rather than say more, I'd encourage you to try the quickstart yourself!