Amazon DynamoDB is a cloud-native, NoSQL, serverless database service.
$0
capacity unit per hour
AWS Lambda
Score 8.3 out of 10
N/A
AWS Lambda is a serverless computing platform that lets users run code without provisioning or managing servers. With Lambda, users can run code for virtually any type of app or backend service—all with zero administration. It takes of requirements to run and scale code with high availability.
DynamoDB is a natural fit for anyone using the AWS environment for their code. If we were using Google or not tied to anything then Firebase might have been a better choice as it supports pub / sub among other things. It doesn't really act as a cache like redis does, but it can …
MongoDB was basically the first approach we used but because there was concern that some data may miss we were reluctant to use it. Oracle Database and SQL Server was our second approach but it was throttling so in last we tested out Amazon DynamoDB and it met our requirement.
DynamoDB's scalability is more automated and effortless, making it easier to handle rapid growth. Other tools require more manual configuration while DynamoDB simplifies database administration. Also, DynamoDB provides strong consistency while other tools like MongoDB and Apache…
We are always assembling our solutions on AWS and DynamoDB is a better fit for us because of its simplicity. DynamoDB has its ow sets of triggers that make this an integrated solution on AWS. Besides, we wanted to use a key-value solution for our simple edge DB, and we didn't …
Comparing RDS and Dynamo is not fully Apples to Apples comparison. RDS is a more flexible cloud-native solution that supports a wide range of engines that are relational. It is great for running older DB types like Oracle in the Cloud. Because it supports multiple engines, it …
DynamoDB is slightly different than both the above-stated DBs, with RDS being a relational database and Redshift being a data warehouse used for heavier jobs and analytics and vast data. DynamoDB lies in between both, with it being a no SQL base that can relatively store …
Lesser flexibility but better performance, and more predictable development support are the key points where Amazon DynamoDB comes out on top, when compared to MongoDB.
DynamoDB provided an easy to use, schema-less, out of the box solution that can be used to spin up a full working implementation very easily. It doesn't require extra knowledge such as MongoDB query functions
It seamlessly integrates with Lambda, simplifying the deployment and management of serverless architecture. Both Lambda and DynamoDB are designed are highly scalable. Lambda functions can be triggered by various AWS services and events, such as changes in DynamoDB tables which …
DynamoDB is a great supplemental data store compared to SQL Server. We use SQL Server extensively for our primary application, however, it is sometimes overkill for small projects that just need a datastore. DynamoDB fits that bill better and is a great option for projects …
Teams at our company briefly looking into other cloud services and we even have a feature using Azure, but Amazon DynamoDB ultimately was selected as it was easier for our company to just work with one suite of web services.
I wish I could speak more towards this, but I did not take the time to evaluate any other options. As I've mentioned earlier in this review, our entire infrastructure is already inside of AWS - we use dozens of their services - so it was a no brainer for us to keep with that …
We used SimpleDB in the past (before DynamoDB existed), but there were several limitations around object size and total size for a given table that we were not able to overcome. DynamoDB has almost no limits, and can scale to store as much data as we need it to. Similarly, …
It's fine, it works as the others would have, except EC2. We are migrating back to EC2 for dedicated compute because we have scaled to a point where we have consistent traffic. The tradeoff of maintaining infrastructure in-house outweighs the benefits of moving quickly through …
It’s great for server less and real-time applications. It would be great for gaming and mobile apps. However, if you need relational database and have fixed budget, do not use it. While budget can be managed, you need to be careful. Also this is not a tool for storing big data, there are other wide-column database types you could use for it ins the ad
Lambda excels at event-driven, short-lived tasks, such as processing files or building simple APIs. However, it's less ideal for long-running, computationally intensive, or applications that rely on carrying the state between jobs. Cold starts and constant load can easily balloon the costs.
Developing test cases for Lambda functions can be difficult. For functions that require some sort of input it can be tough to develop the proper payload and event for a test.
For the uninitiated, deploying functions with Infrastructure as Code tools can be a challenging undertaking.
Logging the output of a function feels disjointed from running the function in the console. A tighter integration with operational logging would be appreciated, perhaps being able to view function logs from the Lambda console instead of having to navigate over to CloudWatch.
Sometimes its difficult to determine the correct permissions needed for Lambda execution from other AWS services.
It's core to our business, we couldn't survive without it. We use it to drive everything from FTP logins to processing stories and delivering them to clients. It's reliable and easy to query from all of our pipeline services. Integration with things like AWS Lambda makes it easy to trigger events and run code whenever something changes in the database.
Functionally, DynamoDB has the features needed to use it. The interface is not as easy to use, which impacts its usability. Being familiar with AWS in general is helpful in understanding the interface, however it would be better if the interface more closely aligned with traditional tools for managing datastores.
I give it a seven is usability because it's AWS. Their UI's are always clunkier than the competition and their documentation is rather cumbersome. There's SO MUCH to dig through and it's a gamble if you actually end up finding the corresponding info if it will actually help. Like I said before, going to google with a specific problem is likely a better route because AWS is quite ubiquitous and chances are you're not the first to encounter the problem. That being said, using SAM (Serverless application model) and it's SAM Local environment makes running local instances of your Lambdas in dev environments painless and quite fun. Using Nodejs + Lambda + SAM Local + VS Code debugger = AWESOME.
It works very well across all the regions and response time is also very quick due to AWS's internal data transfer. Plus if your product requires HIPPA or some other regulations needs to be followed, you can easily replicate the DB into multiple regions and they manage all by it's own.
Amazon consistently provides comprehensive and easy-to-parse documentation of all AWS features and services. Most development team members find what they need with a quick internet search of the AWS documentation available online. If you need advanced support, though, you might need to engage an AWS engineer, and that could be an unexpected (or unwelcome) expense.
The only thing that can be compared to DynamoDB from the selected services can be Aurora. It is just that we use Aurora for High-Performance requirements as it can be 6 times faster than normal RDS DB. Both of them have served as well in the required scenario and we are very happy with most of the AWS services.
AWS Lambda is good for short running functions, and ideally in response to events within AWS. Google App Engine is a more robust environment which can have complex code running for long periods of time, and across more than one instance of hardware. Google App Engine allows for both front-end and back-end infrastructure, while AWS Lambda is only for small back-end functions
I have taken one point away due to its size limits. In case the application requires queries, it becomes really complicated to read and write data. When it comes to extremely large data sets such as the case in my company, a third-party logistics company, where huge amount of data is generated on a daily basis, even though the scalability is good, it becomes difficult to manage all the data due to limits.
Some developers see DynamoDB and try to fit problems to it, instead of picking the best solution for a given problem. This is true of any newer tool that people are trying to adopt.
It has allowed us to add more scalability to some of our systems.
As with any new technology there was a ramp up/rework phase as we learned best practices.
Positive - Only paying for when code is run, unlike virtual machines where you pay always regardless of processing power usage.
Positive - Scalability and accommodating larger amounts of demand is much cheaper. Instead of scaling up virtual machines and increasing the prices you pay for that, you are just increasing the number of times your lambda function is run.
Negative - Debugging/troubleshooting, and developing for lambda functions take a bit more time to get used to, and migrating code from virtual machines and normal processes to Lambda functions can take a bit of time.