Handling failures with maxretry handler

Igor Zhivilo, May 18

In the past few months I had the opportunity to work with RabbitMQ and sneakers, implementing different 'job handling strategies' in our production environment and I decided to share this knowledge with you - hoping this may help someone else there. I want to share my experience of working with my favorite failure handling strategy called 'maxretry'.

Ok, let's start - from its description: “Maxretry uses dead letter policies on Rabbitmq to requeue and retry messages after failure (rejections...

Read more...

Sneakers 1.0 - The New Website

Dotan Nahum, Dec 10

As you might have noticed, Sneakers got a refreshing facelift and a new website!

The goal was both to indicate we're going 1.0, and to set up a worthy go-to place for the now evolving Sneakers community. After a few weeks of fighting simple vs. complex, grand vs. elegant, we finally came at a simple, and elegant visual for Sneakers.

Enjoy!

With the new website you can easily quickstart, track versions, read the blog, browse our Wiki based documentation, and see what others are up to.

Join...

Read more...

Monitoring Sneakers

Dotan Nahum, Dec 9

I'll show one of my production Sneakers deployment and the some of tiers I've chosen for monitoring it.

Monitoring Message Handling

In this specific use case, each "bundle" may contain several "events", which is a simple bulking technique. Here we're averaging and counting the number of events per bundle.

In itself an important metric to measure, to expose a bad / error prone bulking strategy.

A good practice is to always measure the average payload size - the size of a message passed to...

Read more...

Modular Workers for Easier Testing and Development

Dotan Nahum, Dec 4

A background worker in the Ruby world can find its place either assiting a Rails stack, or having a life of its own.

I argue that in either case, giving a worker a life of its own will be highly productive in the long run. Having the worker modeled as a stand-alone library or a gem, a module if you will, is even more productive.

What's a Modular Worker?

Simply put, a modular worker is a worker that is a library or a project of its own. You can export it to a gem and then depend on it, and in...

Read more...

What We've Been Trough

Dotan Nahum, Nov 21

I think it's safe to say: Sneakers is production grade. At all of my production deployments, Sneakers outlived and far exceeded it's original goal. On of them, it's been almost 2 years, 4 BILLION jobs processed, supporting 5 completely different use cases.

I'm humbled that a lot of smart people contributed to this project and major companies adopted it. All I hope for, is that it has saved you time, and made your job easier and more fun to do.

That it solved a problem for you.

With that in...

Read more...