Amazon DynamoDB Reviews

<a href='https://www.trustradius.com/static/about-trustradius-scoring#question3' target='_blank' rel='nofollow noopener noreferrer'>Customer Verified: Read more.</a>
91 Ratings
<a href='https://www.trustradius.com/static/about-trustradius-scoring' target='_blank' rel='nofollow noopener noreferrer'>trScore algorithm: Learn more.</a>
Score 8.5 out of 101

Do you work for this company?

TrustRadius Top Rated for 2019

Overall Rating

Reviewer's Company Size

Last Updated

By Topic

Industry

Department

Experience

Job Type

Role

Reviews (1-25 of 30)

Winston Mendes profile photo
Score 9 out of 10
Vetted Review
Verified User
Review Source
DynamoDB is an excellent tool that is used by the software development department, and web development has allowed us to develop applications and web pages, serverless, quickly and easily with a high level of performance, very fast and secure connection, It has been quite useful for us to implement NoSQL databases, and it is excellent for scalable projects, since we can increase memory resources as they are needed. It is quite comfortable and easy to work, since its confuration is simple, and it integrates easily with the entire aws environment.
  • Serverless webapps, mobile apps, all backend storage.
  • Scalable proyects.
  • Low latency, high performance.
  • High level of security with real-time encryption.
  • Great capacity for compression of information backup.
  • Store information with high performance algorithms, in B trees and hashing.
  • In my opinion it is a tool with a very high value so it is difficult for me to find at this moment where it can improve, it has been in the market for many years, and it has been quite updated since its inception so it has been significantly improved.
It is ideal for those projects where you need to store a large amount of data, but you do not know how many will be so you need the database to increase its storage capacity together with the number of users, without having to spend extra money, it also has a great potential thanks to the fast connection it offers, so the data travels at high speed, and this speeds up the performance of the applications, excellent for projects where non-relational databases are used and what matters is to store large quantities of information and use them at high speed.
Read Winston Mendes's full review
Bob Smith profile photo
Score 10 out of 10
Vetted Review
Verified User
Review Source
DynamoDB is being used in multiple ways to store vast amounts of semi-structured data which need to be quickly accessible by specific parties. It allows us to easily add new fields/values and access them in an easy manner as projects require. The biggest benefit we see is the ability to add additional fields and not require the structure change of continuity.
  • It's very easy to get started, creating a table with a partition/sort key and you're on your way.
  • You can scale up and down your read/write IO as needed.
  • You can store structured and unstructured data.
  • It works great with Web Development as it's JSON based.
  • There is a cost associated with creating indexes and being able to run queries.
  • It would be nice to have a thick client to be able to connect and work with DynamoDB.
  • It would be nice to be more aware of how DynamoDB functioned to be able to engineer towards optimization.
We've used DynamoDB to store online form submissions where forms can have differing information, identify changes between data sets, storage for vast amounts of large data-sets for analytics. Each of these scenarios has pros/cons versus using other traditional methods. It is more about accomplishing what you need to. DynamoDB allows for an increase in Read/Write IOs and allows scalability that some other traditional methods do not. Though it doesn't include some of the nice structure that traditional methods.
Read Bob Smith's full review
Arjun Komath profile photo
Score 8 out of 10
Vetted Review
Verified User
Review Source
Amazon DynamoDB is currently being used as one of our primary databases for several mobile and web applications. Key factors that directed us to choose Amazon DynamoDB are:

  • It's part of the AWS family, and our entire platform is built on AWS and using a solution from AWS itself was one of the top priorities.
  • Scalability and availability - Since its a managed solution we do not have to worry about scaling or the reliability of the database.
  • Simple scalability and key-value storage.
  • Building a real-time database using DynamoDB streams.
  • Storing JSON data.
  • Implementation was harder than relational databases.
  • Querying is sometimes a nightmare.
  • Backup and restore are not straightforward.
If your database doesn't have any relations DynamoDB would be an ideal solution. Consider it more as key-value storage rather than a database, so it ideal for storing something based on a key and fetching it back using that key. But if you have relations or complex data-based queries DynamoDB might not have a straight forward solution.
Read Arjun Komath's full review
Rahul Malik profile photo
Score 9 out of 10
Vetted Review
Verified User
Review Source
Amazon DynamoDB is a fully managed proprietary NoSQL database service. In other words, it is a non-relational database service. It works on the basis of key-value pairs. The best feature of the product is the performance it delivers - single-digit millisecond latency makes it perfect for websites, mobile, and many other applications. The noteworthy feature is that it can scale to any limit you want, you do not have to know everything before the project starts, you can grow the database as the project demands or descale it too. You should go for this product when you have very low latency toleration and performance plus availability and scalability are the top priorities.
  • Amazon DynamoDB is particularly useful when you do not have a very structured data or you just want to enter key-value pairs and not worry about the fine-tuning of the database.
  • It is great choice for the websites, mobile apps, and other variants where the throughout is very crucial along with low latency and could handle an increasing volume of traffic without going down or seeing a drop in performance.
  • Another awesome feature is that it requires no maintenance, no backups, no dedicated server instances in that it is provided as an AWS service. It integrates so very well with other AWS components like AWS Lamada, and AWS API Gateway etc.
  • Querying the data on Amazon DynamoDB is not as easy or straightforward as it in SQL based databases. It requires a steep learning curve to get more accurate and meaningful results.
  • You need be wary before you start using this product because the cost might get high very quickly if you perform a lot of querying or read/write operations on the metadata or semi-structured data that you host.
  • It doesn't support joins, which can be an issue for people who have been using SQL for long. So, if you want to apply joins then you can either do it in the memory or by duplicating data and denormalizing.
Amazon DynamoDB is very well suited for applications where the data is in semi-structured, unstructured, or basically in a key/value model. It is also an apt choice if you have a need for high performance, low latency, auto-scaling and cost-effective solution where you don't need to buy any inventory or server or memory space in advance for the whole lifecycle of the project. It doesn't require any installation and is serverless as well. It basically comes into the ecosystem of Amazon Web Services. So, if your data is located on Amazon or you are already making use of AWS then this can be a perfect fit for your project
It also encrypts the data with the latest security algorithm available and our customers are also quite relaxed knowing that their data is stored on Amazon cloud and it secured by Amazon.
Read Rahul Malik's full review
No photo available
Score 9 out of 10
Vetted Review
Verified User
Review Source
Ours is a marketing technology division. We have a lot of real-time data as well as non-real-time data that is derived from batch systems. We use Dynamo DB to address both these needs. Dynamo DB has provided us great scalability and reliability. The best reason why we like DynomoDB is that we don't have to manage anything and it all being done for us in a cost-effective manner.
  • Great performance even with large scale applications.
  • We don't need to manage any backend servers, everything is a one-click solution in their dashboard.
  • Support great reliability and scalability while supporting ACID transactions.
  • The costs can be huge if the resource is not monitored properly. We had to crank it down during off-peak hours and again increase the throughput during high usage intervals.
  • While the time of usage, DynomoDB did not support different region backup. The backups were only within the same region.
  • Best suited for key-value type of operations only. Won't work particularly great for relational operations.
Here are the few reasons to highly choose DynamoDB:
1. It is managed, no need to invest in time or resources to do the upgrades or worry if it is up or not.
2. It has predictable performance.
3. Sits well with the other components of AWS.
4. It has multiple interfaces to connect and work on.
5. Automatic partition support.
6. Gives great scalability especially during peak performance needs.
Read this authenticated review
No photo available
October 29, 2019

DynamoDB is great

Score 8 out of 10
Vetted Review
Verified User
Review Source
We store user-generated content in DynamoDB. It allows us to store large quantities of data without the headaches of scalability. Our other data is stored in a relational database and we are constantly scaling it up to larger instances but with DynamoDB we set autoscaling years ago and it just chugs along.

Essentially, we can give users reliable low latency access to their personalized content even as our traffic has multiplied.
  • Scales well.
  • Low latency.
  • Allows for some data structures (e.g. sorted data using range keys).
  • Better batch support in APIs. (e.g. multiple Query calls).
  • Update support for nested attributes.
  • Sets and other data structures.
A simple key-value store, with properly distributed keys, works pretty well with DynamoDB. However, where it really shines is when effective range keys are used. Anything with semantic ordering works really well, but even multiple documents of scoped data work pretty well. As with all things DynamoDB, you have to be very intentional with your partition key.
Read this authenticated review
No photo available
Score 9 out of 10
Vetted Review
Verified User
Review Source
DynamoDB is used by one of the many departments of our company. We were looking for some sort of NoSQL database to use to store some operational data and user records. We were implementing some AWS services and got to know DynamoDB. After careful study, we decided to use it to solve our problem.
  • It is compatible with MongoDB.
  • It is fast.
  • It is scalable. we do not have to worry about outage.
  • MongoDB is not fully compatible
  • Some functions are limited
  • Can be hard to learn
If you are in a company that seeks to implement NoSQL service to save the hassles of a relational database, DynamoDB is the service to use. Especially if you use Amazon Web Service already. It can be a huge help to your company's data structure. It saves you a lot of money as you pay as you go.
Read this authenticated review
No photo available
Score 8 out of 10
Vetted Review
Verified User
Review Source
We use DynamoDB as a database for one of our products. It solved the problem of processing data coming from different customers in different individual formats. Each client can upload files, with any number of fields, of any type. We ingest this data into DynamoDB and process is using lambda functions from there.
  • Speed of writing data.
  • Dealing with unstructured data.
  • Large, almost limitless volumes of data.
  • Cost - it gets pretty expensive, fast.
The best scenario is when one needs to deal with very large volumes of data in inconsistent formats.

The worst case, I would think, is the use cases when the data is strictly structured and interrelated. Also when the volumes are not so great or the project is small and there can be budgetary concerns.
Read this authenticated review
No photo available
Score 8 out of 10
Vetted Review
Verified User
Review Source
DynamoDB is used across the Engineering department. The biggest use case was introduced by me a couple of years back where our largest production workload was migrated to DynamoDB from Cassandra. More can be found here: https://techblog.gumgum.com/articles/moving-to-amazon-dynamodb-from-hosted-cassandra
  • Auto-scaling is the best feature which no other product offers.
  • Predictable performance with good latency metrics.
  • Its 100% server-less and fully managed which makes engineer's lives easier.
  • Global Table is not the best solution yet and needs to be improved.
  • Does not do well in the case of globally replicable counters.
  • Cost of GT might be excessive and not feasible for most companies with big production-write workloads.
Amazon DynamoDB is well suited for high-traffic workloads which vary across the day. The autoscaling feature helps to reduce the running cost for off-peak hours.

It is not suitable for counters especially when they need to be replicable. The item size is also important. If it's trying to read too much, it might not give the best performance.
Read this authenticated review
No photo available
June 21, 2019

NoSQL on steroids

Score 10 out of 10
Vetted Review
Verified User
Review Source
We are using Dynamo DB across multiple projects including new applications to be developed or modernizing a legacy application. It addresses the business problem of offering a durable scalable document store.
  • On demand capacity
  • Easy to use SDK
  • Easy integration with other AWS services
  • Better filtering options are needed
Cloud-native serverless applications get accelerated when using Dynamo DB.
Read this authenticated review
Chris Moyer profile photo
Score 10 out of 10
Vetted Review
Verified User
Review Source
We've been using Amazon DynamoDB since it was released in 2012. Previously, we used Amazon SimpleDB, which was much slower and slightly more difficult to work with than DynamoDB. DynamoDB is our "Source of Truth" for all data stored within my company, and is used to store all of our administrative information (such as connection details, FTP account information, and contact information), as well as the blog posts that we receive and process.
We have Lambda functions that write information to DynamoDB, which triggers other lambda functions to index that data in both SQL databases as well as Algolia for advanced searching and facet support.
DynamoDB helps us support the very random access patterns that we receive for content. Some days we process almost no stories, while other days we process hundreds of thousands of stories. With DynamoDB, we can automatically scale to whatever needs the day might have.
  • Automatic Scaling (especially with the new on-demand capacity mode).
  • Simple querying of massively large databases.
  • Effortlessly store a relatively unlimited amount of information.
  • Very cost effective for random access patterns.
  • Complex searching (no support for case-insensitive or full-text search).
  • Only supports up to two-key indexes.
  • Requires choosing the indexes up-front when doing searches.
  • Does not have an SQL compatible query front-end.
  • No join-table support (requires putting all data into one table).
Amazon DynamoDB is absolutely the easiest and most efficient way to run a Non-Relational database. It's perfectly suited for a "source of truth" where other indexes might be built from data stored in DynamoDB, and for use where search patterns are predictable. It's also incredibly effective at storing relatively unstructured data, or data models that might frequently change. As it does not require a rigid definition of data beforehand, it makes adjusting data stored in the table a non-effort, but it does require some planning when looking at how to get data back out of the table.
Unlike traditional SQL or Relational databases, DynamoDB is designed to have all relevant information within a single object. If not properly planned, this can lead to issues when building out a front-end. DynamoDB does not have join table support, nor does it support complex searches or "count" style responses. It is eventually consistent, although they recently did introduce Transaction support, there is no "rollback" option.
Read Chris Moyer's full review
Dylan Cauwels profile photo
Score 7 out of 10
Vetted Review
Verified User
Review Source
DynamoDB was used by our enterprise data platform team to store data in forms that would often change over time. It was a great NoSQL option for us since the entire team was already on AWS anyways and acquainted with its UI. While it had many advantages, DynamoDB was more of a niche solution for us since, as a data platform, we required the more advanced query and indexing capabilities of an RDS database. DynamoDB was never a permanent solution for us, only a temporary place-holder until we had the database schema finalized for an RDS database. Because of its elastic nature and ease-of-use to set up with our existing infrastructure, it worked well for our team.
  • Pro: Scalable to Infinity. There are no problems with data when it comes to DynamoDB. We set up a script in our monitoring application that would automatically allocate more storage through the AWS API's whenever our capacity hit 80% of allocated storage.
  • Pro: Easy Setup. DynamoDB will automatically scale horizontally and vertically (if requested) with no maintenance or human intervention required. Set it up once and it will run forever.
  • Pro: EMR integration. If you use Elastic Map Reduce for your analytics, DynamoDB will integrate nicely.
  • Cons: NoSQL limitations. You can only do ~1MB queries and ~64kb of row size, something that will become a real bottleneck as your database grows and your queries become more complex. NoSQL also means that querying non-indexed data is incredibly limited and will often become completely impossible when your table grows. This is why my team opted for DynamoDB as a temporary solution until we finalized our RDS options.
  • Cons: AWS limitations. You can only deploy this on AWS, meaning access from Azure or GCloud is going to be more of a challenge and a security risk. I would not recommend DynamoDB unless you already have your infrastructure on AWS.
  • Cons: Backing Up. Backing up is quite tedious on DynamoDB compared with RDS. While RDS can be as simple as a button click, DynamoDB can take hours of tedious work. AWS gets around this by horizontally scaling your instances, but any good team is going to want to back up their data and on DynamoDB that will be postponed as long as possible.
Great for temporary data storage or data that has a particularly short lifecycle and can be processed then disposed of quickly. I would not recommend DynamoDB for any long-standing applications or user-based systems. DynamoDB data should be ingested, processed, analyzed, then removed. The infrastructure setup allows for confidence that your data will be there when you need it but only for a short period of time. Backups are not worth the effort, so keep that in mind.
Read Dylan Cauwels's full review
Marc Smith profile photo
Score 9 out of 10
Vetted Review
Verified User
Review Source
We are using DynamoDB with a simple, singular purpose - storing basic information for our customer base such as settings and configuration options. It's a quick and easy way for us to store and fetch this simple data, and since we have a very large presence within AWS already, it's a natural fit.
  • Simple interface for setup
  • Works well within an existing AWS ecosystem
  • Fast
  • Nothing, so long as you're using it with the intended purpose of a quick, reliable NOSQL DB
Fast, reliable access to a large amount of data has been key for us. However, if you're looking for a traditional relational database, this is certainly not the place to look. I'd also recommend this solution regardless of whether or not you're existing infrastructure is already in AWS or not - I'd say it's a good fit for any setup.
Read Marc Smith's full review
No photo available
Score 9 out of 10
Vetted Review
Verified User
Review Source
In our organization, we are moving towards server-less for our in-house application as well as suggesting the same to the client. Dynamo being a serverless NoSQL database plays a key role in our application architecture.
We are using Dynamo widely for session management and product catalog user profiles.
  • Pay as you go, no upfront payment
  • You can scale down your table to 1wcu 1rcu which bring its cost to a few dollars a month.
  • Configuring auto-scaling
  • Support to burst traffic
  • Database as an API, so it can be easily integrated with the application.
  • Wide support with other AWS services.
  • A limited number of primary and secondary indexes.
  • Poor performance for batch retrieval.
  • Very bad support for operation where the aggregation is needed (sum, avg, min, max).
  • No Joins, (it's not made for join).
We are using Dynamo for session management in a web application, storing the product catalog, storing questions(different question types in a survey, subjective-objective, single select multiple select), storing survey responses, storing email templates, and storing application logs.






Read this authenticated review
No photo available
Score 8 out of 10
Vetted Review
Verified User
Review Source
The engineering and data teams use DynamoDB to persist data for some of our services. We use it as an inexpensive, fully-managed key-value store. The business problem it primarily addresses is developer velocity. With DynamoDB, developers do not need to configure and manage a database; even RDS requires some more configuration and on-going maintenance than DynamoDB. DynamoDB is inexpensive; it allows developers to adhere to practices like one-database-per-service when building even small, temporary services.
  • DynamoDB is fully-managed. In the early days, it lacked features like backups, and developers had to either implement some of their own backup functionality or live dangerously. Today, DynamoDB's claim to be fully-managed is more credible. Backups can be configured through the console. Table capacity does not even need to be planned anymore; you can scale (and pay) on-demand.
  • DynamoDB is inexpensive for some use-cases. In particular, DynamoDB is very inexpensive when you create a datastore for a low-volume micro-service, or a stateful background job. DynamoDB is much less expensive than RDS or Elasticache for these use-cases, and it allows developers to design systems without worrying about cost.
  • DynamoDB is fast when used for the use-cases it was designed for.
  • DynamoDB supports the development experience and testing reasonably well. AWS provides an official DynamoDB image that can be used in tests locally or in CI.
  • Capacity planning can be difficult, but it is probably a worthwhile exercise in itself. However, today you can scale tables on-demand without capacity planning.
  • Migrations can be slow and difficult. If you need to change your schema (e.g., add a secondary index) after you have written a large volume of data to the table or after consumers of the data are live, migrating can be expensive. Tooling for DynamoDB migrations is less mature than tools for migrating other datastores.
  • The API is complicated, and third-party wrappers, like PynamoDB, are immature.
  • Scanning tables is slow and expensive. It is important to anticipate all of the types of queries you will need to support and design your schema accordingly.
DynamoDB is great for two cases. The first is for services that do not experience high loads or demand high availability. DynamoDB is inexpensive, and it provides great developer velocity. The second is for applications that demand high performance, have well-understood requirements, and a narrow range of queries.
Read this authenticated review
No photo available
Score 6 out of 10
Vetted Review
Verified User
Review Source
It was used as our primary data store for a link sharing and user profile-based application. We chose it for its speed and scalability as well as what we perceived beneficial pricing model. We knew that we wanted to use a NoSQL solution, and having one that was hosted by AWS seemed like an ideal fit.
  • It's fast. VERY fast. We still house our data that needs to be accessed quickly here.
  • It's a flexible NoSQL solution
  • It has unlimited scalability and you can use only what you pay for.
  • There is very minimal tooling for it compared to other mature solutions. You must go through the AWS dashboard to access what you need.
  • The throughput model for charging can make it very difficult to effectively read and write. It's good for small consistent loads, but does not handle spikes and can not transferring large amounts of data. Once you have data in Dynamo, it's very difficult to transport it out at a reasonable cost - very annoying if you want to move data to a different type of storage.
  • It gets expensive very quickly. We thought it would be cheap, but any kind of reasonable load will shoot your costs up beyond what you would have paid for other solutions.
  • The data is very rigid. You must follow their model of declaring indexes and they can't be updated once the tables are created.
It's a very good database for specific use-cases, but you should know full well what you are getting into with it. You are stuck doing things the Amazon way and paying much more than other options. If you need speed, have the money, and fully understand your indexes, it's top notch. If you care more about tooling, known costs, and stability, another solution might be better.
Read this authenticated review
No photo available
Score 10 out of 10
Vetted Review
Verified User
Review Source
DynamoDB is really used across quite a few different departments at our company. It's an extremely simple NoSQL database that can be spun up instantly. We use it for every single one of the applications my team has developed. We store session information in there temporarily either for users or for currently running background processes. We also store some long term information in DynamoDB that would normally belong in a relational database, but it was much easier for us to use DynamoDB to store it.
  • Easy to start
  • Easy to query
  • Easy to delete
  • Zero maintenance
  • Cost is a bit of an issue
  • Query API is a little confusing
  • Indexes are a challenge
DynamoDB is great for any situation where you need to store some piece of data temporarily. User sessions in a web app is a great example. You can also store information more permanently if you don't need to do complex queries on the data or always know the ID of what you're looking for. In our situations, we've made the mistake of putting data into DynamoDB and realized later that we needed to query the data with a more complex, relational type of query and discovered we could not efficiently do so. So, if your queries are simple, DynamoDB can be a really simple straightforward solution.
Read this authenticated review
No photo available
Score 10 out of 10
Vetted Review
Verified User
Review Source
We use DynamoDB for our project VacationTracker. We decided to use DynamoDB because it was cheap and the latency between our AWS Serverless microservices and DynamoDB is less.
  • Point-in-time recovery backup
  • Auto-scaling
  • Scaling horizontally
  • Only pay for what you use, its good for a startup project.
  • Price calculator, but for the startup project, it's free.
You should not worry about scaling with this tool. For beginners, it's not easy to understand how partition key and sort key work.
Read this authenticated review
Richard Rout profile photo
Score 9 out of 10
Vetted Review
Verified User
Review Source
We use Amazon DynamoDB as a scalable solution for NoSQL related storage of data. It has the benefit of still requiring a schema so it can guarantee your data shape, but it's not as loose or flexible as a JSON database.
  • Scalable data storage
  • Solid DB schema
  • Amazon's reliability
  • Not as flexible as something like Firebase
  • Has a learning curve
  • Ties you into AWS infrastructure
It's no replacement for a SQL database, but if you want a NoSQL data storage solution with some rigidity, it's the one to go for.
Read Richard Rout's full review
Alan Balasundaram profile photo
Score 10 out of 10
Vetted Review
Verified User
Review Source
DynamoDB is a wide-column store. Various product development teams that are on AWS make use of it as a key-value store, when relational hierarchy isn't as important. Much like other cloud services, the benefit is once provisioned, the management aspect is wholly owned by Amazon. We evaluated and chose DynamoDB over running RDMS on RDS or even on our own EC2 as our use case provided significant cost savings. Our applications needed a resilient data store, but did not have relational data, nor did it have high throughput needs, allowing us to have a fully managed, and scalable store at a fraction of of cost.
  • Provisioned through-put pricing. You pay for the bandwidth you need.
  • Simple API for developers to use.
  • Managed by Amazon, high availability, and high durability.
  • Pricing is based on through-put units, which can be tricky to understand.
  • DynamoDB can autoscale up, but applications must guard against running up against provisioned throttling limits.
  • High throughput use cases can get expensive quickly.
For most use cases where utilization is fairly constant, DynamoDB provides guaranteed performance. With autoscaling, DynamoDB can handle bursty traffic. As bandwidth can be reprovisioned, it's great for use in the prototyping stage all the way up to production applications.

For highly volatile access patterns, DynamoDB will require you to over provision you throughput, paying for bandwidth you may not utilize.
Read Alan Balasundaram's full review
AYUSH VERMA profile photo
Score 9 out of 10
Vetted Review
Verified User
Review Source
Amazon DynamoDB is just the best NoSQL database. I really love the interface and scalability. The best part is vertical scaling. It's just very affordable and making queries is very easy. Using Amazon's Boto3 API is a good source for proxying queries and requests. Third party module and support are good too. I am really using because they are adding new indexes to the table, making it fast and intuitive for prototyping.

I feel they lack Amazon's strong type checking. So I feel they need to work a bit on this part. I've also used DynamoDB on the local system but they need to add more flexibility to the local system. Overall, I feel if you are planning 1 million/min queries then it's perfect for your usage.
  • The usage of hash and range keys to retrieve flat objects is a plus
  • Very easy usage with CloudFront and Elastic Beanstalk.
  • Using Amazon CloudWatch monitoring on Amazon DynamoDB is always a good point.
  • I feel they need to improve in strong type checking
  • The relational database is tough to migrate so this might be a no for you.
  • I feel the local setup is a good idea for testing but some improvements are sorely needed.
I feel when you are using very large data sets and high query parameters then it is surely a good idea. So just go for DynamoDB. It has a beautiful API to talk to it. So, AWS DynamoDB is always a plus over other NoSQL.
Read AYUSH VERMA's full review
Anudeep Palanki profile photo
Score 8 out of 10
Vetted Review
Verified User
Review Source
We made a transition to using DevOps at our organization and AWS is our choice of cloud provider. For a new micro service we built, we need a NoSQL database, that provides basic querying capability and requires minimum maintenance. Considering that Amazon offers DynamoDB as software as a service, it is a de-facto choice for us. It is being used across departments for various micro services. Understanding the querying capability is critical in selecting a database and DynamoDB fits into a use case where we need to query the nested array within the first layer of JSON objects.
  • Security and managing infrastructure are the first reason why we selected DynamoDB. It takes quite an effort to set other NoSQL databases up in EC2 instances. Since DynamoDB offers single click table (Collection equivalent in MongoDB) setup, it's pragmatic to give this a first shot.
  • It provides decent querying capabilities with excellent documentation. If you have a JSON structure that's relatively flat (not more than 2 nested JSON objects) that needs querying, DynamoDB would be a great choice for you.
  • Neat CLI API that allows for easy setup in a local development environment would make the life of a developer a breeze. This again brings the benefit of having great documentation.
  • Better querying capability, we had a requirement where we wanted to index and query nested arrays. For example: our sample data structure: {a: [{b: ['array of interest' ]}]}. DynamoDB does not provide neat way to query the 'array of interest'. Hence we had to shift few of our Databases from DynamoDB to Postgres.
  • DynamoDB does not offer any sort of database functions or triggers that would help manipulate the data before performing a transaction. This is key for part of our NoSQL datastore. For example: we wanted to manually maintain consistency of order variable in a JSON array i.e. if we add an element to middle of the array, the order of rest of the elements should shuffle within a single transaction. This functionality leaves something to be desired from DynamoDB.
  • Transaction management is something that DynamoDB does not offer. For example: if we want to perform a read and write within a same transaction, DynamoDB does not offer this capability. Hence, DynamoDB is not a great fit for highly concurrent environment.
Amazon's DynamoDB is very well suited for:
  • Applications with a relatively flat data structure.
  • Relatively simple querying on data.
  • Scenarios where the developers do not have time to manage the database.
Less appropriate if the data:
  • Structure is complex and has object depth beyond 2 layers.
  • Requires indexing and querying on nested arrays.
  • Requires executing multiple queries within a single transaction.
Read Anudeep Palanki's full review
Justin Schroeder profile photo
Score 4 out of 10
Vetted Review
Verified User
Review Source
We use dynamodb for to store and track millions of email messages sent by our sass product. Each email is unique, and in order to maintain a full record of our transactions with clients, we store, and recall each message that was ever sent using dynamodb. Because of the sheer scale and data size requirements it makes it very difficult to use traditional methods of recall, especially when you want the actual text of the email to be part of the database and not stored in offline storage.
  • Recall on primary hashes is very fast, with HTTP latency over the network we were regularly able to call up records in the 20ms range from a database of millions of records
  • Like other NoSQL databases Dynamo lets you easily and quickly add fields to each record without having to define a full schema.
  • Pricing is quite affordable as long as you are efficient with your queries. You really need to be doing hash lookups rather than scans since Amazon charges you per record accessed.
  • Query "language" leaves much to be desired. If you're coming from a database like MongoDB or SQL you'll find it extremely difficult to get data back out of the system without breaking the bank.
  • Because querying is poor, often the only way to get data out of arbitrary fields is by scanning the records – but the pricing model for this is cost prohibitive. This means you frequently need additional architecture to keep track of where data is stored in the hash table. While this is an issue for lots of NoSQL database, DynamoDB is probably the worst offender I've used to date because of the pricing model.
  • Amazon does offer a local version of DynamoDB you can run in development, but its an extremely clunky and very hard to integrate into any kind of continuous integration.
If you're absolutely locked into the amazon ecosystem and don't want to go through the work of having your own db instances – then this might be a good option for you.
Read Justin Schroeder's full review
Adam Lauer profile photo
Score 6 out of 10
Vetted Review
Verified User
Review Source
It is a great way to store vast amounts of data for quick retrieval. Along with new features added to it like global secondary indexes, automated backups, and dynamo streams, it becomes a great cheaper alternative to SQL. We use it to hold any data we need stored with high reliability while still being able to access it sub second.
  • Fast retrieval
  • Auto scaling to control costs
  • Query and scanning allow for different use cases
  • Can get very expensive very fast
  • Sharding and hot spotting are hidden problems that can cause ALOT of head ache
  • Not relational or transactional at all
It is best for high demand over short periods of time and then being scaled down to save costs. This is kind of a pay for what you need model. This falls short though because while you can scale up unlimited you can only scale down 4 times a day which can be a limitation for some.
Read Adam Lauer's full review
Jordan Bayles profile photo
Score 8 out of 10
Vetted Review
Verified User
Review Source
Amazon DynamoDB is utilized by my company on a client-by-client basis to solve issues with responsiveness. We use it in conjuction with Amazon CloudSearch to provide extremely fast lookup and modification of entities that would otherwise be difficult to retrieve through a more traditional relational database (such as our current relational database at my current client, PostgreSQL).
  • Amazon DynamoDB excels at quite, intuitive object retrievals. The usage of hash and range keys to retrieve flat objects means it's easy to understand what you are going to get and how to map out objects into entities in your data access layer.
  • Amazon DynamoDB is great at adding new indexes to a table, making it fast and intuitive for prototyping.
  • The ability to use Amazon CloudWatch monitoring on Amazon DynamoDB is very helpful for managing data analysis and discovering issues without a large investment.
  • Because of the lack of relations in AmazonDynamoDB, mapping very complex objects that you would typically decompose into related entities is difficult. Amazon DynamoDB is typically not great for this use case.
  • Amazon DynamoDB doesn't do strong type checking (there is typing, but it's relatively limited), so depending on your language you may have to expend some effort to properly map an Amazon DynamoDB object to a programmatical entity.
  • Depending on how much need you have for Amazon DynamoDB's performance, it can be a major pain to maintain... especially if you also have a relational database. In my current project, we utilize Amazon DynamoDB alongside PostgreSQL and entities live in one, the other, or both as appropriate. Synchronizing the database is a pain point.
How performant does my solution need to be? Amazon DynamoDB is very fast.
What is the total scope of my entities? Do they need to be relational? If they serialize well as a flat entry, Amazon DynamoDB is a great choice.
Read Jordan Bayles's full review

Feature Scorecard Summary

Performance (20)
9.0
Availability (20)
9.4
Concurrency (19)
9.0
Security (20)
9.2
Scalability (19)
9.5
Data model flexibility (20)
6.6
Deployment model flexibility (18)
7.4

About Amazon DynamoDB

Amazon DynamoDB is a NoSQL database, from Amazon Web Services.

Amazon DynamoDB Technical Details

Operating Systems: Unspecified
Mobile Application:No