Amazon DynamoDB vs RabbitMQ

Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Amazon DynamoDB
Amazon DynamoDB

1.6K
952
+ 1
162
RabbitMQ
RabbitMQ

4.7K
3.3K
+ 1
453
Add tool

Amazon DynamoDB vs RabbitMQ: What are the differences?

Amazon DynamoDB: Fully managed NoSQL database service. All data items are stored on Solid State Drives (SSDs), and are replicated across 3 Availability Zones for high availability and durability. With DynamoDB, you can offload the administrative burden of operating and scaling a highly available distributed database cluster, while paying a low price for only what you use; RabbitMQ: A messaging broker - an intermediary for messaging. RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.

Amazon DynamoDB and RabbitMQ are primarily classified as "NoSQL Database as a Service" and "Message Queue" tools respectively.

Some of the features offered by Amazon DynamoDB are:

  • Automated Storage Scaling – There is no limit to the amount of data you can store in a DynamoDB table, and the service automatically allocates more storage, as you store more data using the DynamoDB write APIs.
  • Provisioned Throughput – When creating a table, simply specify how much request capacity you require. DynamoDB allocates dedicated resources to your table to meet your performance requirements, and automatically partitions data over a sufficient number of servers to meet your request capacity. If your throughput requirements change, simply update your table's request capacity using the AWS Management Console or the Amazon DynamoDB APIs. You are still able to achieve your prior throughput levels while scaling is underway.
  • Fully Distributed, Shared Nothing Architecture – Amazon DynamoDB scales horizontally and can seamlessly scale a single table over hundreds of servers.

On the other hand, RabbitMQ provides the following key features:

  • Robust messaging for applications
  • Easy to use
  • Runs on all major operating systems

"Predictable performance and cost" is the primary reason why developers consider Amazon DynamoDB over the competitors, whereas "It's fast and it works with good metrics/monitoring" was stated as the key factor in picking RabbitMQ.

RabbitMQ is an open source tool with 5.95K GitHub stars and 1.78K GitHub forks. Here's a link to RabbitMQ's open source repository on GitHub.

reddit, 9GAG, and Rainist are some of the popular companies that use RabbitMQ, whereas Amazon DynamoDB is used by Netflix, Medium, and Lyft. RabbitMQ has a broader approval, being mentioned in 940 company stacks & 548 developers stacks; compared to Amazon DynamoDB, which is listed in 444 company stacks and 187 developer stacks.

- No public GitHub repository available -

What is Amazon DynamoDB?

With it , you can offload the administrative burden of operating and scaling a highly available distributed database cluster, while paying a low price for only what you use.

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.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Amazon DynamoDB?
Why do developers choose RabbitMQ?

Sign up to add, upvote and see more prosMake informed product decisions

What companies use Amazon DynamoDB?
What companies use RabbitMQ?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Amazon DynamoDB?
What tools integrate with RabbitMQ?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to Amazon DynamoDB and RabbitMQ?
Google Cloud Datastore
Use a managed, NoSQL, schemaless database for storing non-relational data. Cloud Datastore automatically scales as you need it and supports transactions as well as robust, SQL-like queries.
MongoDB
MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
Amazon SimpleDB
Developers simply store and query data items via web services requests and Amazon SimpleDB does the rest. Behind the scenes, Amazon SimpleDB creates and manages multiple geographically distributed replicas of your data automatically to enable high availability and data durability. Amazon SimpleDB provides a simple web services interface to create and store multiple data sets, query your data easily, and return the results. Your data is automatically indexed, making it easy to quickly find the information that you need. There is no need to pre-define a schema or change a schema if new data is added later. And scale-out is as simple as creating new domains, rather than building out new servers.
MySQL
The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
Amazon S3
Amazon Simple Storage Service provides a fully redundant data storage infrastructure for storing and retrieving any amount of data, at any time, from anywhere on the web
See all alternatives
Decisions about Amazon DynamoDB and RabbitMQ
James Cunningham
James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 113.6K views
atSentrySentry
RabbitMQ
RabbitMQ
Celery
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
RabbitMQ
RabbitMQ
Kafka
Kafka

The question for which Message Queue to use mentioned "availability, distributed, scalability, and monitoring". I don't think that this excludes many options already. I does not sound like you would take advantage of Kafka's strengths (replayability, based on an even sourcing architecture). You could pick one of the AMQP options.

I would recommend the RabbitMQ message broker, which not only implements the AMQP standard 0.9.1 (it can support 1.x or other protocols as well) but has also several very useful extensions built in. It ticks the boxes you mentioned and on top you will get a very flexible system, that allows you to build the architecture, pick the options and trade-offs that suite your case best.

For more information about RabbitMQ, please have a look at the linked markdown I assembled. The second half explains many configuration options. It also contains links to managed hosting and to libraries (though it is missing Python's - which should be Puka, I assume).

See more
Frédéric MARAND
Frédéric MARAND
Core Developer at OSInet · | 2 upvotes · 92.3K views
atOSInetOSInet
RabbitMQ
RabbitMQ
Beanstalkd
Beanstalkd
Kafka
Kafka

I used Kafka originally because it was mandated as part of the top-level IT requirements at a Fortune 500 client. What I found was that it was orders of magnitude more complex ...and powerful than my daily Beanstalkd , and far more flexible, resilient, and manageable than RabbitMQ.

So for any case where utmost flexibility and resilience are part of the deal, I would use Kafka again. But due to the complexities involved, for any time where this level of scalability is not required, I would probably just use Beanstalkd for its simplicity.

I tend to find RabbitMQ to be in an uncomfortable middle place between these two extremities.

See more
Doru Mihai
Doru Mihai
Solution Architect · | 4 upvotes · 454 views
Amazon DynamoDB
Amazon DynamoDB

I use Amazon DynamoDB because it integrates seamlessly with other AWS SaaS solutions and if cost is the primary concern early on, then this will be a better choice when compared to AWS RDS or any other solution that requires the creation of a HA cluster of IaaS components that will cost money just for being there, the costs not being influenced primarily by usage.

See more
Michael Mota
Michael Mota
CEO & Founder at AlterEstate · | 4 upvotes · 12.4K views
atAlterEstateAlterEstate
Django
Django
RabbitMQ
RabbitMQ
Celery
Celery

Automations are what makes a CRM powerful. With Celery and RabbitMQ we've been able to make powerful automations that truly works for our clients. Such as for example, automatic daily reports, reminders for their activities, important notifications regarding their client activities and actions on the website and more.

We use Celery basically for everything that needs to be scheduled for the future, and using RabbitMQ as our Queue-broker is amazing since it fully integrates with Django and Celery storing on our database results of the tasks done so we can see if anything fails immediately.

See more
Interest over time
Reviews of Amazon DynamoDB and RabbitMQ
Review ofRabbitMQRabbitMQ

I developed one of the largest queue based medical results delivery systems in the world, 18,000+ queues and still growing over a decade later all using MQSeries, later called Websphere MQ. When I left that company I started using RabbitMQ after doing some research on free offerings.. it works brilliantly and is incredibly flexible from small scale single instance use to large scale multi-server - multi-site architectures.

If you can think in queues then RabbitMQ should be a viable solution for integrating disparate systems.

How developers use Amazon DynamoDB and RabbitMQ
Avatar of Karma
Karma uses Amazon DynamoDBAmazon DynamoDB

For most of the stuff we use MySQL. We just use Amazon RDS. But for some stuff we use Amazon DynamoDB. We love DynamoDB. It's amazing. We store usage data in there, for example. I think we have close to seven or eight hundred million records in there and it's scaled like you don't even notice it. You never notice any performance degradation whatsoever. It's insane, and the last time I checked we were paying $150 bucks for that.

Avatar of Volkan Özçelik
Volkan Özçelik uses Amazon DynamoDBAmazon DynamoDB

zerotoherojs.com ’s userbase, and course details are stored in DynamoDB tables.

The good thing about AWS DynamoDB is: For the amount of traffic that I have, it is free. It is highly-scalable, it is managed by Amazon, and it is pretty fast.

It is, again, one less thing to worry about (when compared to managing your own MongoDB elsewhere).

Avatar of CloudRepo
CloudRepo uses Amazon DynamoDBAmazon DynamoDB

We store customer metadata in DynamoDB. We decided to use Amazon DynamoDB because it was a fully managed, highly available solution. We didn't want to operate our own SQL server and we wanted to ensure that we built CloudRepo on high availability components so that we could pass that benefit back to our customers.

Avatar of Cloudify
Cloudify uses RabbitMQRabbitMQ

The poster child for scalable messaging systems, RabbitMQ has been used in countless large scale systems as the messaging backbone of any large cluster, and has proven itself time and again in many production settings.

Avatar of Chris Saylor
Chris Saylor uses RabbitMQRabbitMQ

Rabbit acts as our coordinator for all actions that happen during game time. All worker containers connect to rabbit in order to receive game events and emit their own events when applicable.

Avatar of Clarabridge Engage
Clarabridge Engage uses RabbitMQRabbitMQ

Used as central Message Broker; off-loading tasks to be executed asynchronous, used as communication tool between different microservices, used as tool to handle peaks in incoming data, etc.

Avatar of Analytical Informatics
Analytical Informatics uses RabbitMQRabbitMQ

RabbitMQ is the enterprise message bus for our platform, providing infrastructure for managing our ETL queues, real-time event notifications for applications, and audit logging.

Avatar of Packet
Packet uses RabbitMQRabbitMQ

RabbitMQ is an all purpose queuing service for our stack. We use it for user facing jobs as well as keeping track of behind the scenes jobs.

Avatar of nrise
nrise uses Amazon DynamoDBAmazon DynamoDB

몇몇 로그는 현재 AWS DynamoDB 에 기록되고 있습니다. 개선을 통해 mongodb 로 옮길 계획을 하고 있습니다. 아주 간단한 데이터를 쌓는 용도로는 나쁘지 않습니다. 다만, 쿼리가 아주 제한적입니다. 사용하기 전에 반드시 DynamoDB 의 스펙을 확인할 필요가 있습니다.

Avatar of HyperTrack
HyperTrack uses Amazon DynamoDBAmazon DynamoDB

To store device health records as it allows super fast writes and range queries.

How much does Amazon DynamoDB cost?
How much does RabbitMQ cost?
Pricing unavailable
News about RabbitMQ
More news