Friday, 5 August, 2016 UTC


Summary

Years ago I was building a distributed system that had to function with and without a network connection.
It was a standalone app for vehicle maintenance that would synchronize data with a central server.
After a lot of trial and error, I decided to use a message queue.
It handled the system’s needs perfectly. I could batch up messages while disconnected and when the connection came back, the system would send the messages.
This was the first time I used a message queue, but I was hooked instantly.
During that first project, I saw the potential power of message based patterns. From Windows to the web, my code would benefit from this new-to-me architectural style.
I built applications and frameworks – including Marionette.js on top of Backbone – with ideas that dramatically simplified complex system design.
Life was good on the front end, for the Windows apps and my JavaScript / Backbone code.
Fast forward a few years and I was building a SaaS app.
Things were going well, but as traffic grew the site was slowing down and putting strain on the database. External service calls were overwhelming the network. Code was failing and the site was crashing!
I had to do something… but, what?
I knew what I wanted to do – to take the slow code out of my Express route handlers. But I didn’t know how… at least, I thought I didn’t.
It wasn’t until I saw connectivity issues with external services that I started thinking about a message queue – the same tool that had helped me with the offline/online app, years ago.
So I did some research, not knowing what was available for free / open source message queueing.
And I found RabbitMQ.
After taking some time to educate myself and painfully work through learning RabbitMQ, I very nervously wrote and deployed my first bits of code with it.
The result was incredible.
My service went from handling a few hundred requests per minute, to tens of thousands. My SaaS was alive and healthy, again!
I could scale the back-end code separately from the web server. The system could more easily recover from catastrophic failure. And once again, I was building complex systems in small chunks that are easier to work with.
And it’s all thanks to messaging with RabbitMQ.
But… learning on your own tedious, at best.
There’s new patterns to try, new language to understand, and new code to write.
It can take months, even years, of working with a new technology on your own, to master it.
I’ve been down the path of self-learning with message queues and the associated patterns. I know how long it takes to get from where I started to where I am today.
I don’t want anyone else to travel this path alone.
For that reason, I’ve put together the fastest way to cross the chasm.
The RabbitMQ For Developers package is the resource on learning what you need to know, and why.
And if you want an inside look at the course, sign-up below. You’ll get a preview of the course that has helped hundreds of developers save their SaaS, apps and architecture.
Tweet