Amazon DynamoDB is a cloud-native, NoSQL, serverless database service.
$0
capacity unit per hour
Neo4j
Score 9.7 out of 10
N/A
Neo4j is an open source embeddable graph database developed by Neo Technologies based in San Mateo, California with an office in Sweden.
$65
per month
Pricing
Amazon DynamoDB
Neo4j
Editions & Modules
Provisioned - Read Operation
$0.00013
capacity unit per hour
Provisioned - Write Operation
$0.00065
capacity unit per hour
Provisioned - Global Tables
$0.000975
per Read Capacity
On-Demand Streams
$0.02
per 100,000 read operations
Provisioned - Streams
$0.02
per 100,000 read operations
On-Demand Data Requests Outside AWS Regions
$0.09
per GB
Provisioned - Data Requests Outside AWS Regions
$0.09
per GB
On-Demand Snapshot
$0.10
per GB per month
Provisioned - Snapshot
$0.10
per GB per month
On-Demand Restoring a Backup
$0.15
per GB
Provisioned - Restoring a Backup
$0.15
per GB
On-Demand Point-in-Time Recovery
$0.20
per GB per month
Provisioned - Point-in-Time Recovery
$0.20
per GB per month
On-Demand Read Operation
$0.25
per million requests
On-Demand Data Stored
$0.25
per GB per month
Provisioned - Data Stored
$0.25
per GB per month
On-Demand - Write Operation
$1.25
per million requests
On-Demand Global Tables
$1.875
per million write operations replicated
Aura Professional
$65
per month
Community Edition
Free
Enterprise Edition
Contact Sales
Aura Free
Free
Aura Enterprise
Contact Sales
Offerings
Pricing Offerings
Amazon DynamoDB
Neo4j
Free Trial
No
Yes
Free/Freemium Version
No
Yes
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
—
—
More Pricing Information
Community Pulse
Amazon DynamoDB
Neo4j
Considered Both Products
Amazon DynamoDB
Verified User
Engineer
Chose Amazon DynamoDB
We started using DynamoDB because of the AWS ecosystem; it integrates well with everything. The IAM for role management as well. But using MongoDB with other AWS products was not seamless; we had to create custom APIs to make it work. But if the need for your organization is …
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
Neo4J is great for creating network graphs or illustrating how things are related. It is also good for finding individuals or things that have greater influence than others in a system. It is not appropriate if you have standard data sets that can be analyzed using conventional methods or visualized using Tableau, for example.
Mature Query language, I found Cypher QL to be mature in handling all sorts of problems we throw at it. Its expressive enough to be intuitive while providing rich features for various scenarios.
Native support for REST API, that makes interacting with Neo4J intuitive and easy.
Support for Procedures in Java, procedures are custom code that could be added to the Neo4J to write custom querying of data. The best part about the procedures is it could be invoked using the REST API. This allows us to overcome any shortcomings from their Cypher query language.
Nice UI and interface for executing the Query and visualizing the response.
UI access controlled by User credentials allows for neat access controls.
Awesome free community edition for small-scale projects.
One of the hardest challenges that Neo4j had to solve was the horizontal scaling problem. I am not updated on recent developments, but at the time of my use, I couldn't find a viable solution.
Neo4j does not play with other open source APIs like Blueprint. You have to use the native Neo4j API.
There wasn't a visual tool to see your data. Of course, third party tools are always available, but I would have loved something which came with the Neo4j bundle. I love that Docker comes bundled with Kitematic, so it's not wrong to hope that Neo4j could also ship with some default visualization software.
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.
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.
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.
Neo4j is a graph store and has different use cases compared to another NoSQL Document store like MongoDB. MongoDB is a bad choice when joins are common as existing operators for joining two documents (similar to tables in a relational store) as Mongo 3.5 use SQL like join algorithms which are expensive. MongoDB is a great choice when distributed schemaless rich document structures are important requirements. Cross document transaction support is not native to MongoDB yet, whereas Neo4J is ACID complaint with all its operations.
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.