What is our primary use case?
One of our customers has been using DynamoDB for four years. They are using it to store long strings of data, particularly experiences shared by people in nature domains, such as recreation zones.
These experiences could be related to hiking, swimming, observing nature, or anything else. People can send in short messages, and those messages are stored in DynamoDB.
How has it helped my organization?
DynamoDB is a service by Amazon. It is what it is.
What is most valuable?
DynamoDB is a key-value database, and it's valuable if you have simple scan queries and don't need to do point searches. For example, if you want to see what happened on Wednesday afternoon at two o'clock and correlate that with what happened on Thursday morning at eleven o'clock, DynamoDB can handle those queries.
However, if you need to do more complex queries that involve multiple indexes or multiple keys, you're better off using an operational database. DynamoDB can still be a good choice for single-T value streams and smaller datasets, but it does have a limitation of four KB for a record, which can be restrictive.
Essentially, for those with some experience in the field, we could call it an index sequential access method.
What needs improvement?
Maybe the documentation could be improved a bit. Sometimes, it's a little confusing, and people can easily be mistaken about DynamoDB.
That's the main thing, the documentation could be a little more explicit or a little more elaborate. But that's it. It's a key-value system, and it works well for what it is. The only thing I can see that could be improved is the documentation.
For how long have I used the solution?
We have been using it since 2019, so for four years now.
What do I think about the stability of the solution?
The service itself is stable. We haven't found any faults in DynamoDB. It is what it is. I would have developed it or designed it with some more resilience in terms of flexibility and data, but the thing is stable. I've never had a crash.
What do I think about the scalability of the solution?
It is scalable up to its limits. DynamoDB can be used by all types of businesses, from small startups to large enterprises.
How are customer service and support?
We've always gotten help when we've called, so in my case, customer service and support are good.
We don't have any complaints about that or any information to provide on that. We always get a response within the contractual parameters, so everything has been okay for us.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
We have a few DynamoDBs, and we are also planning to restore unstructured data next week.
In 1982, which is now 40 years ago, we were working with an IBM system called ISAM and VTAM. Those very old mainframe systems were exactly what DynamoDB is today.
DynamoDB is a key-value storage device for a system. You have a key, which is one, two, three, and you have values, such as apples, orange juice, pears, whatever.
You can have a data construction or design in which you have one value with one key, or you could have a data structure designed for your application with a specific type of data. And then, you have to set up your DynamoDB accordingly. So, again, it's like comparing what is better: white bread, whole wheat bread, or slightly less white bread. It's all still bread.
How was the initial setup?
Any service in AWS is relatively easy to deploy. The deployment time for any variable GB is about a second.
What about the implementation team?
One person can do the deployment. The service itself doesn't require maintenance. It's the content that needs attention. It's like any data store or any form. If you put garbage or corrupt data in it, you will get a corrupted result. So, the service itself is flawless. It works exactly as advertised.
But if you store the wrong data in it, with the wrong key and the wrong values, you will get the wrong results. So, the maintenance is not so much in DynamoDB itself. The maintenance is in your data stream.
We have a cloud engineer who takes care of running, upgrading, and supporting about 60 to 70 DynamoDBs in the physical sense, although that might be a bad term to use with cloud services. And he does it all by himself. So, one person can, in the current state of affairs with cloud services, oversee quite a large number of services.
What's my experience with pricing, setup cost, and licensing?
Compared to a high-end relational database, it's cheap. But then it doesn't have the capabilities of a high-end relational database because it's not meant to be a high-end relational database.
So, it's like looking at what the price difference is between a scooter and a Bentley or a GTR. They are means of transport that are in a different league altogether. So, you don't compare a Bentley with a scooter.
The pricing is based on usage. DynamoDB is one of the services within Amazon Web Services. So, the pricing for anything in cloud services is based on usage and volume. So, the more you use it and the more volume you pump into it, the more the price will go up. But that is the normal business case for any storage service in the cloud.
What other advice do I have?
If you've done your data architecture and analyzed what you'll be using your data for, where you'll be using it, and you have your data flows and conceptual model, and you see that it's a sequential storage of keys with values attached to it, DynamoDB is a valuable and valid option.
However, don't use it just because it's easy. You should use it when you don't need some of the other aspects of a relational database, like joining, multiple endpoints, and comparing or having a key on multiple datasets. If that's your use case, if you want it for your entire application, don't use DynamoDB.
But if it's for something simple, like a record of sales or events happening on a particular day or moment, please do use DynamoDB. It all comes down to the quality of your data architect.
I would give it a ten in some cases and a zero in others. For example, if you want to have a research database where you need multiple perspectives on the same set of data, and you try to do that within DynamoDB, you're going to have trouble.
But if you have a log and you want to do some statistical research on, for example, the sales in a supermarket, which are a simple timeline with the cash register data, timestamp, value, and then the goods, that's all very simple, key-value, and you can use DynamoDB for that.
So, it depends on the use case. For the use cases that you're using it for, you would give it a ten. So, the solution is excellent for the purpose you're using it for.
For my use cases, I would rate it an eight out of ten. We chose DynamoDB. We could have done the same thing with a relational database, but then again, you wouldn't choose a Bentley Continental GTR just to go to the grocery store. You can go to the grocery store on a scooter.
We decided against the relational database because of the overhead and cost, and we went with DynamoDB instead. Because the dataset is just a key timestamp and some values, a key and a value, we can restore them sequentially, which is exactly what DynamoDB can do without any problems.
Disclosure: My company has a business relationship with this vendor other than being a customer. Integrator