re: Implementing Rails and RabbitMQ for EventDriven Architecture VIEW POST


Hi Pawan, making Rails talk to RabbitMQ is possible through bunny but:

  • maybe you don't need to talk directly to rabbitmq
  • rabbitmq is not that widespread as a service on the cloud which means you might need to learn how to configure it and set it up and it's not particularly easy

I'm saying this because I would like to understand what you're trying to accomplish before suggesting a direction or another.

At a high level of abstraction the easiest configuration I can come up with is the classical producer - queue - consumer:

  • your Rails web app produces data to process asynchronously
  • it puts such data on the queue
  • a consumer process takes it from the queue and works on it

This can get you far both with scaling and with load distribution.

Keep in mind that "event driven" is a more abstract concept, the UI I'm typing this in is event driven, every keyboard press generates an event (interrupt) that's processed by the operating system, sent to the application and then handled by a handler (the consumer) somewhere.


I am trying to implement pubsub (producer - queue -consumer). so that I can achieve the almost realtime data driven graphs.
I know few other options are redis and kafka for the same but we are going for RabbitMQ. I have already used redis. As a whole I will be implementing this on different stack to achieve microservices structure. Its just a beginner step towards that.


Ok, you might want to look into sneakers as well. It's a job processing framework that sits on top of Bunny and uses RabbitMQ as its backend.

Basically you submit jobs with bunny and/or consume them with sneakers

code of conduct - report abuse