Six Reasons to Avoid Amazon DynamoDB if You're a Ruby Developer

DZone 's Guide to

Six Reasons to Avoid Amazon DynamoDB if You're a Ruby Developer

· Cloud Zone ·
Free Resource

At least one user is claiming that Amazon DynamoDB is not "production ready."  DynamoDB is a relatively inexpensive, managed, hosted NoSQL database that is designed to "address the core problems of database management, performance, scalability, and reliability," according to the official site.  In yesterday's article on the surprising lack of managed, hosted NoSQL databases, I mentioned some of the current NoSQL databases that serve as potential alternatives to AWS, while also suggesting that the lack of managed NoSQL databases may be due to the difficulty of challenging a company as huge and well-established as Amazon.

According to a recent post on Timothy Cardenas's blog, he complains that Amazon DynamoDB should be avoided by Ruby developers.  He sugest six problems that he's come across thus far:

  • Write capacity hanging in create mode for over an hour.
  • Inability to simply count my records
  • Inablity to loop through records without huge read costs
  • No asyncronous support for writting
  • Can only double read/write capacity per update
  • Ruby SDK is written like a labyrinth with very little ability to extend without knowing every little detail about the rest of the library. I couldnt even understand how a request was created it was so convoluted.

This suggests a couple of questions to me.  First, are these actually problems with DyamoDB's Ruby SDK, or are they user problems that could be answered simply by checking out some forums?  Second, are these problems a potential chink in DynamoDB's armor?  If so, maybe there's a copmany out there that can provide a better managed, hosted NoSQL database that caters to the Ruby developer.  

 If such a database exists, please let us know and provide any other potential comments below.




Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}