4.1K
2.8K
447

What is RabbitMQ?

RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
RabbitMQ is a tool in the Message Queue category of a tech stack.
RabbitMQ is an open source tool with 6K GitHub stars and 1.8K GitHub forks. Here’s a link to RabbitMQ's open source repository on GitHub

Who uses RabbitMQ?

Companies
1182 companies reportedly use RabbitMQ in their tech stacks, including reddit, 9GAG, and Banksalad.

Developers
2790 developers on StackShare have stated that they use RabbitMQ.

RabbitMQ Integrations

Datadog, Server Density, Tutum, ElasticBox, and StackStorm are some of the popular tools that integrate with RabbitMQ. Here's a list of all 15 tools that integrate with RabbitMQ.

Why developers like RabbitMQ?

Here’s a list of reasons why companies and developers use RabbitMQ
RabbitMQ Reviews

Here are some stack decisions, common use cases and reviews by companies and developers who chose RabbitMQ in their tech stack.

James Cunningham
James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 47.1K views
atSentrySentry
RabbitMQ
Celery
#MessageQueue

As Sentry runs throughout the day, there are about 50 different offline tasks that we execute—anything from “process this event, pretty please” to “send all of these cool people some emails.” There are some that we execute once a day and some that execute thousands per second.

Managing this variety requires a reliably high-throughput message-passing technology. We use Celery's RabbitMQ implementation, and we stumbled upon a great feature called Federation that allows us to partition our task queue across any number of RabbitMQ servers and gives us the confidence that, if any single server gets backlogged, others will pitch in and distribute some of the backlogged tasks to their consumers.

#MessageQueue

See more
Tim Abbott
Tim Abbott
Founder at Zulip · | 6 upvotes · 19.7K views
atZulipZulip
Redis
Python
RabbitMQ

We've been using RabbitMQ as Zulip's queuing system since we needed a queuing system. What I like about it is that it scales really well and has good libraries for a wide range of platforms, including our own Python. So aside from getting it running, we've had to put basically 0 effort into making it scale for our needs.

However, there's several things that could be better about it: * It's error messages are absolutely terrible; if ever one of our users ends up getting an error with RabbitMQ (even for simple things like a misconfigured hostname), they always end up needing to get help from the Zulip team, because the errors logs are just inscrutable. As an open source project, we've handled this issue by really carefully scripting the installation to be a failure-proof configuration (in this case, setting the RabbitMQ hostname to 127.0.0.1, so that no user-controlled configuration can break it). But it was a real pain to get there and the process of determining we needed to do that caused a significant amount of pain to folks installing Zulip. * The pika library for Python takes a lot of time to startup a RabbitMQ connection; this means that Zulip server restarts are more disruptive than would be ideal. * It's annoying that you need to run the rabbitmqctl management commands as root.

But overall, I like that it has clean, clear semanstics and high scalability, and haven't been tempted to do the work to migrate to something like Redis (which has its own downsides).

See more
Samuel Webster
Samuel Webster
Principal Developer at Colart · | 6 upvotes · 4.7K views
WordPress
RabbitMQ
Symfony
WooCommerce
#Pim

We needed our e-commerce platform (built using WooCommerce) to be able to keep products in sync with our #pim (provided by #akeneo) which is built in Symfony . We hooked into the kernel.event_listener to send RabbitMQ messages to a WordPress API endpoint that triggers the updated product to rebuild with fresh data.

See more
Sebastian Gębski
Sebastian Gębski
CTO at Shedul/Fresha · | 5 upvotes · 14.7K views
atFresha EngineeringFresha Engineering
Redis
RabbitMQ
PostgreSQL

Initially we had just 1 monolithic application with a PostgreSQL database (picked for performance, community & flexibility to work with GIS data), but as we've developed more features, it was clear that some stuff is relatively independent from the rest of the platform - it made sense to split the application into loosely coupled, asynchronously communicated services. As a communication broker we've used RabbitMQ (wrapped in our custom, ProtoBuff-based wrapper). To reduce some excessive inter-process (& inter-dyno) communication, we've applied Redis as a tool to keep short-lived, not-persistent information (but not as a cheap caching workaround for any kind of performance issues ;>).

See more
StackShare Editors
StackShare Editors
HAProxy
Varnish
Tornado
Django
Redis
RabbitMQ
nginx
Memcached
MySQL
Python
Node.js

Around the time of their Series A, Pinterest’s stack included Python and Django, with Tornado and Node.js as web servers. Memcached / Membase and Redis handled caching, with RabbitMQ handling queueing. Nginx, HAproxy and Varnish managed static-delivery and load-balancing, with persistent data storage handled by MySQL.

See more
Adam Rabinovitch
Adam Rabinovitch
Global Technical Recruiting Lead & Engineering Evangelist at Beamery · | 3 upvotes · 151.8K views
atBeameryBeamery
Kafka
Redis
Elasticsearch
MongoDB
RabbitMQ
Go
Node.js
Kubernetes
#Microservices

Beamery runs a #microservices architecture in the backend on top of Google Cloud with Kubernetes There are a 100+ different microservice split between Node.js and Go . Data flows between the microservices over REST and gRPC and passes through Kafka RabbitMQ as a message bus. Beamery stores data in MongoDB with near-realtime replication to Elasticsearch . In addition, Beamery uses Redis for various memory-optimized tasks.

See more

RabbitMQ's Features

  • Robust messaging for applications
  • Easy to use
  • Runs on all major operating systems
  • Supports a huge number of developer platforms
  • Open source and commercially supported

RabbitMQ Alternatives & Comparisons

What are some alternatives to RabbitMQ?
Kafka
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.
ActiveMQ
Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License.
ZeroMQ
The 0MQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. 0MQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.
Amazon SNS
Amazon Simple Notification Service makes it simple and cost-effective to push to mobile devices such as iPhone, iPad, Android, Kindle Fire, and internet connected smart devices, as well as pushing to other distributed services. Besides pushing cloud notifications directly to mobile devices, SNS can also deliver notifications by SMS text message or email, to Simple Queue Service (SQS) queues, or to any HTTP endpoint.
Redis
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
See all alternatives

RabbitMQ's Stats

RabbitMQ's Followers
2794 developers follow RabbitMQ to keep up with related blogs and decisions.
Fabio Di Sotto
André Felipe Joriatti
mkod mkod
Serhat Yalcin
Mohamma76685757
Neal Magee
José Luis González Vergara
Lucas Alejandro Kenda
mail2692
Sunil Shahi