DynamoDB, SimpleDB and Simol

Jan 19, 2012 at 4:54 PM

Some of you may be wondering what Amazon's announcement of DynamoDB  today means for SimpleDB and Simol.

Due to my work on Simol I've been aware of Dynamo and been given preview and private beta access by Amazon since about June of last year. Amazon will continue to support SimpleDB, but I don't expect them to advance the feature set further. (They haven't announced that position "officially" but that's the impression I got in discussing it with several Amazon employees last year.)

I spent some time investigating whether it would make sense to integrate support for Dynamo into the current Simol codebase so that Simol would support the two products side-by-side. My conclusion was that this would not provide any major benefit over porting the code to a new library that would be similar to Simol but better adapted to the fundamental differences between the two services. As a result I stopped working on new features for Simol, and started working (slowly) on a new library for Dynamo.

I would appreciate any thoughts or feedback from existing Simol users on your plans for moving to Dynamo and the desire for a new library.

Regards, Ashley

Jan 20, 2012 at 5:32 PM

That would be awesome!  Simol has done a great job making up for SimpleDB's limitations.  AWS had to get something out early, and SimpleDB was their entry.  Other than perhaps cost (I don't have a simple way to compare) it's hard to see a downside to this next-generation product.  I would greatly appreciate any help you could give us in regard to DynamoDB, and I'm sure that many others feel the same!  Thanks Ashley!

Jan 20, 2012 at 7:09 PM

I know you have their ear, so here's what I would suggest first:

Make Dynamo a drop-in replacement for SimpleDb. If there was a way to just toggle things in the AWS console to say you want to transition to DynamoDb, and all existing code and calls that used to store things there would now store things in Dynamo, that'd be an obviously easy transition to Dynamo. Coders could then migrate their code base gradually to the new API while the storage remains consistent.

As for interfacing with Dynamo with a library, you know my suggestion... async.

Also, apologies for not being around lately - I gave up on SimpleDb and generally use simple SQL Server setups now, whose admin chores I lament every day. Leagues faster than SimpleDb though.

Jan 21, 2012 at 11:03 PM

The object persistence was clearly missing from SimpleDB and you made it relatively straightforward.

I've been using Simol for about 6 months now and have a working solution. You have my vote to provide a drop in replacement for DynamoDB. 

The automatic partitioning in DynamoDB is of interest to us, so would plan to move to Dynamo in the future, which would be made much simpler if Simol supported it.

Also, I'm not clear if DynamoDB allows indexing of more than one attribute in the way Simol does.



Jan 24, 2012 at 5:18 PM

I will slowly migrate to DynamoDB in a production application that currently uses SIMOL for access to SimpleDB and am eagerly awaiting your first code release.

A drop in replacement would be terrific, but not necessary (IMO). I'd rather re-code my repository as a tradeoff for being able to leverage DynamoDB specific functionality.



Mar 9, 2012 at 9:56 AM

Drop in replacement is not needed at all. Better to make changes into my code. I see very little benefits continuing with simpledb.

May 1, 2012 at 3:05 AM
Edited May 1, 2012 at 3:06 AM

Thanks to everyone who responded here. I've finally had some time to get back into DynamoDb and tinker with the AWS SDK a bit after putting this aside for several months. After some consideration, I've decided not to go ahead with a Simol port for Dynamo. There are a several reasons for this:

  1. I'm not currently using Dynamo myself. It was easier to justify spending time on Simol because I was also building my own application on SimpleDB. I can't justify spending the same amount of time on Dynamo "just because", and the effort is not trivial.
  2. Amazon has already included a rudimentary object-mapping facility for Dynamo in the AWS SDK. While the Amazon mapper has--in my opinion--some significant issues, they've added just enough functionality to significantly lower the value of a third-party mapping library.
  3. I considered adding some higher-level functionality on top of the Amazon mapper (such as integrated caching, Linq support, and few other things), but the Amazon library lacks the extension points to add features without hacking around or duplicating existing code. (For example, the main data mapper access class does not even implement an interface.)

I will continue to support Simol. And since some people are still choosing to use SimpleDB and Simol over DynamoDB, I plan to release another Simol update or two with Linq, improved async support, and a few other highly requested features.

May 1, 2012 at 8:07 PM


Some of the best usage examples I've seen of DynamoDb factor multiple 'properties' into the keys to allow for a sort of range query. For example using a key of {user}+{formatted-date}, date ranges can be requested very very quickly. To get the most out of DynamoDb, the key mapping is going to need to be tailored to each application. 

The lack of interfaces is a bit of a fail on Amazons part, but I'm sure they'll improve that at a later date.

Mar 18, 2014 at 3:09 PM
Hi, guys!

If you're looking for a framework over DynamoDb with capabilities similar to Simol, then take a look at my Linq2DynamoDb.
It is still based on AWSSDK, but supports LINQ and caching.
And I would really appreciate your thoughts about more functionality to include in future.
Mar 18, 2014 at 8:59 PM

I’m not actively developing against Simol or DynamoDb at the moment but will be sure to take a look at Linq2DynamoDb.



Peter Soukalopoulos
Development Team Leader | GreenButton Limited | www.greenbutton.com
Level 2, James Smith Building, 55 Cuba Street, Wellington, New Zealand

Mobile: +64 22 632 5023| DDI: +644 974 6602 | [email removed] | Skype: psoukal | HQ: +644 499 0424

Description: GreenButton_words_small cid:[email removed]075BC0

For best support, please respond to [email removed] and retain the ticket number in the subject line.

This message contains confidential information, intended only for the person(s) named above, which may also be privileged. Any use, distribution, copying or disclosure by any other person is strictly prohibited. In such case, you should delete this message and kindly notify the sender via reply e-mail. Please advise immediately if you or your employer does not consent to Internet e-mail for messages of this kind.