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.
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.
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.
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.
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.