Happy birthday DynamoDB!
This month we celebrate the birthday of one of the most important NoSQL fully managed database service available in the market.
I have been using AWS services for production loads since 2010, I can consider myself a pioneer of the services they were offering at that time, but I could never have imagined that AWS was cooking such a disruptive database service that will be launched two years later, on January 2012.
But DynamoDB was not a recent trend in that moment, though it was born in the edge of a few malfunctioning situations occurred in 2004 in the Amazon core e-commerce platform. From there, engineers investigated and built what we know today as DynamoDB. It was first announced as a paper in 2007 and it was adopted by several core services teams at Amazon over the following months after that.
This service was (and is) very easy to setup and work with, and avoided us to built MySQL databases when they were not really necessary, so it boosted our speed to build concept proofs, that later became a reality within the same service because its reliability and scalability.
Below I am going to mention a few use cases I have use DynamoDB for:
I few years ago I worked for a SaaS that built custom experiences for users based on their behaviour in the website. One of the products was based on product recommendations, and the client was able to build custom widgets (html) within their dashboard. Later, when website was loaded in the browser by the user, the widget was filled with real products directly within the front-end. That HTML, with custom variables, was saved in DynamoDB, along with different properties related to the widget itself.
I have been using DynamoDB since the beginning as a database to ingest all kind of user actions. Those actions are later processed in batch to obtain useful information, and DynamoDB's search capability has been very useful to locate and filter data. this use of DynamoDB served us well when building products such as: cart abandonment emails, analytics dashboards for clients or simple data tables.
Also the ability to set up a timeout for entries, makes DynamoDB a friendly tool in terms of data protection compliance.
When you are starting to know DynamoDB, the very first advice you are going to receive is: "Design your tables thinking in how you are going to search for in them later", so the sky's the limit , as Jason Derulo said in his song. Taking this advice into account, I was able to build a User Identity pool system from scratch, which also included dynamic profile attributes, without relying in a MySQL server.
I know that nowadays we are lucky to be able to use different technologies much more focused and optimised for some of these use cases, but in the past we had fun trying to "hack" DynamoDB to served us for almost everything. Anyways, DynamoDB will not leave us for a (long)while, so we will enjoy it until then.