Fenego Insights

NoSQL Database DynamoDB

As online shopping experiences and digital spend continue to grow in an ever-changing world, being able to quickly push new features is a a key goal to pursue. At Fenego, we accelerate the development of new features by desiging best-of-breed solutions and isolating custom USPs in microservices.

In this article we zoom in on some technical aspects of our microservices and reveal why this is exactly beneficial for modern organizations. One of our in-house experts, Vincent Nagy, explains how we're able to deliver ultra-fast and flexible features.

Vincent Nagy.jpeg
Vincent Nagy
E-commerce consultant at Fenego

In a nutshell

What is DynamoDB?

DynamoDB is a fully managed NoSQL database from Amazon, hosted on AWS. It is basically a key-value store, designed to run powerful applications at any scale. DynamoDB enables rapid development and costs significantly less compared to a relational database.

Advantages of DynamoDB

Why would you use it?

  • Development Speed

    One of the main advantages of DynamoDB is the development speed. By moving away from the relational paradigm and basing data models on code, allows for a code first approach. This reduces the time needed for analysis and makes it possible to start development a lot faster. Add in the automatic table generation, configurable time-to-live, and serverless nature of DynamoDB and you can save a lot of time normally used to set up the infrastructure, design the data model, and configure the database.

    Single-Digit Millisecond Performance

    Another major selling point is the single-digit millisecond performance that you can consistently achieve with DynamoDB. This is attained by structuring all the data where it is needed, instead of dividing this data into different tables and then merging it together. Moreover, this has the side effect of reducing the cognitive complexity of your system.

  • If you look at the figure above, you can see an example of the speed and consistent performance that DynamoDB delivers. Even though throughput fluctuates, performance is always up to par.

    dynamodb.avif
  • Cost

    When looking at the cost of DynamoDB, there is a significant difference compared to a standard relational database. The costs are determined by three factors: storage, transfer, and capacity. Each account has 25 GB of free storage and 100 GB of free transfer. The capacity has two modes that allow for the most gain: You can choose to set up a provisioned read and write capacity that allows for consistent performance and price, or you can use the capacity on demand. The main advantage of on-demand capacity is that it reduces costs during low-traffic periods while ensuring maximum speed during peak hours.

Most interesting features

Running high-performance, internet-scale applications

Time to Live (TTL)

Cleaning data after a certain time or expiration date is a common functionality requested by customers. Fortunately, DynamoDB offers this out of the box, it's called Time to Live. An attribute and a time period after which items have expired can be selected. Expired items are automatically cleaned up. The alternative would be a scheduled task that scans all items and removes outdated items, which costs time to implement and resources to scan the table. This is what you would commonly see in a relational database.

DynamoDB Accelerator (DAX)

As we've seen before, DynamoDB's performance is already incredible. However, it can still be improved. For resource intensive or mission critical loads we can activate DynamoDB Accelerator. This is a fully managed in memory cache that delivers an improvement up to 10 times of the normal response times.

Point-in-time recovery (PITR)

Last but certainly not least, Point-in-time recovery is a database backup mechanism that allows us to recover up to 35 days back in time. The precision of this tool is down to the second and can be extremely helpful in case of data loss, critical bugs or accidental deletion of data.

meme-dynamodb.jpeg

Contact us

Want to know more about this technology or the projects we use it for? Don't hesitate to contact us for more info! Reach us by email or fill in the form below.

Contact form