On open source, rabbits and bridges
At Liip we invest heavily in open source collaborating to several projects like the Symfony web framework to name just one. We encourage our developers to take part in open source projects and for that we have set up several budgets to allow our developers to participate.
From one of those budgets I created the project Tamed Rabbit which aims to ease the barrier for people trying RabbitMQ for the first time.
Many users face the problem that when they want to take RabbitMQ for a test drive they have to install the Erlang programming language first, since RabbitMQ requires it. While there's nothing wrong with installing Erlang nor it's difficult, it might be a bit scary at first. Besides that compiling Erlang takes a while, a go-and-drink-some-coffee-while. Yes, you can dowload prepackaged versions of Erlang for your platform but if you use tools like Homebrew for Mac, they will compile Erlang from source, so you better have that coffee ready somewhere close to you when the process starts.
Due to that issue I was wondering how could I create a RabbitMQ release that shipped with the minial Erlang components to make it work. Luckily for us the Erlang developers already thought of the problem of releasing standalone Erlang applications so they created a release system that lets you package your Erlang app with its Erlang modules dependencies as a .tar file. That was exactly what I was looking for.
The next thing to do was to add some modifications to the RabbitMQ start up scripts to make them work with the particular folder structure imposed by Erlang releases. After playing for a couple of days with RabbitMQ make files I could come up with a working solution that has been open sourced on Github as the project Tamed Rabbit.
The Power of Open Source
On of the great things about open source is that once you release your code you don't know what is happening to it; who might be using it. Your code might be helping (or giving headaches) to people on the other side of the world that you will probably never met. And I think that is pretty cool.
Last week I was getting my daily dose of Hacker News Oriented Development when I noticed a project called Bridge which caught my attention since it was related to messaging, a topic that interests me a lot. Also it was reported to be using RabbitMQ so I had to take a look. I went ahead and downloaded their bridge-server to see what was inside and I've got the great surprise to find out that our little Tamed Rabbit project was being shipped with their server. There's no better reward for a developer to see it's own code being actually used so that basically made my day (actually my night since it was quite late).
So what is Bridge you might be wondering? I contacted Bridge creators @DShankar and @sridatta and asked them directly so we can get their words right on our blog regarding their product:
"Bridge is an RPC framework for building modular services and scalable cross-language applications. It lets you write combine simple, reusable components to make robust server-to-server and client-to-server architectures." Just go and watch the demo video on their homepage. Pretty impressive stuff. I must say that video really showcases how you can build amazing products on top of RabbitMQ.
I also was curious about why they choose to go with Tammed Rabbit in order to distribute RabbitMQ:
"Bridge depends on RabbitMQ but we did not want our users to manually install it to use Bridge. Alvaro's tamedrabbit project improved our installation experience by letting us bundle RabbitMQ along with our package. We integrated it into Bridge within hours, rather than spending days figuring out how to build and package RabbitMQ ourselves."
That was exactly what I had in mind when I came up with the idea of creating a standalone Rabbitmq release: to save RabbitMQ users from headaches. I think software usability goes beyond having nice interfaces. It also affects how hard it is for a newcomer to get started with a product. While RabbitMQ is quite easy to run, having to install Erlang as a dependency can prove to be a headche for many people.
Here at Liip we are true believers of open source and we use and contribute to open source projects quite extensively, so we are really happy that yet another of our open source projects is having such an impact.
Disclaimer: Liip AG is not afiliated with Bridge nor RabbitMQ.
Add a comment
Your email adress will never be published. Comment spam will be deleted!