Our friends at CloudSpokes ran a challenge with the goal of creating some awesome demos for Amazon DynamoDB. The challenge is now complete and they have taken the time to write a guest post to share the results with the AWS community.
Last November CloudSpokes was invited to participate in the DynamoDB private beta. We spent some time kicking the tires, participating in the forums and developing use cases for their Internet-scale NoSQL database service. We were really excited about the possibilities of DynamoDB and decided to crowdsource some challenge ideas from our 38,000 strong developer community. Needless to say, the release generated quite a bit of buzz.
When Amazon released DynamoDB in January, we launched our CloudSpokes challenge Build an #Awesome Demo with Amazon DynamoDB along with a blog post and a sample ”Kiva Loan Browser Demo” application to get people started. The challenge requirements were wide open and all about creating the coolest application using Amazon DynamoDB. We wanted to see what the crowd could come up with.
The feedback we received from numerous developers was extremely positive. The API was very straightforward and easy to work with. The SDKs and docs, as usual, were top-notch. Developers were able to get up to speed fast as DynamoDB’s simple storage and query methods were easy to grasp. These methods allowed developers to store and access data items with a flexible number of attributes using the simple “Put” or “Get” verbs that they are familiar with. No surprise here, but we had a number of comments regarding the speed of both read and write operations.
When our challenge ended a week later we were pleasantly surprised with the applications and chose to highlight the following top five:
1st Place (tie) - Wcheung (Canada) submitted Flickr on DynamoDB (video - code) which is a Grails application that caches Flickr photos in Amazon DynamoDB. You can then search for cached feed entries by primary key (author + published date/time range) or by table scan. You can also “like” a photo, resulting in the atomic “like” counter for the item in DynamoDB getting incremented:
1st Place (tie) - Mbleigh (US) submitted Posterity (video - code), a simple, barebones Twitter-esque service created in Ruby using Sinatra. It is far from complete but uses a number of DynamoDB's key features including Hash/Range Keys and Atomic Set Push Operations:
2nd Place - Darthdeus (Czech Republic) wrote his AWS DynamoDB Task Management app (demo - video - code) in Ruby using Sinatra. It uses a custom ORM he wrote called DynamoRecord to access DynamoDB. His main idea was to get at least some of the ActiveRecord-ish API to DynamoDB using some basic metaprogramming:
3rd Place - Peakpado (US) created a Simple Survey (video - code) application using Ruby on Rails. For each table he created a sophisticated hask/range key model class which resulted in an API very similar to ActiveRecord for DynamoDB:
4th Place - Romin (India) developed an API (demo - code) that exposes data sets of Mumbai city in JSON format. The solution uses Amazon DynamoDB for storing the data and a NodeJS application that exposes the REST interface and talks to Amazon DynamoDB via a backend Java application.
Make sure you take a look videos and code for each application and then start building your own on Amazon DynamoDB. Check out the Getting Started with Amazon DynamoDB guide or Amazon DynamoDB to get started.