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 …
DynamoDB is a great service if you are looking for a quick and easy way to store NoSQL data in the cloud and do not want to be concerned with managing the server or infrastructure. If you are already invested in AWS, the value proposition is even higher as it works very well with the other services that AWS provides.
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.
We will most likely continue to use DynamoDB for certain use-cases. If we stopped using DynamoDB as often, it would likely be because we started using Aurora Serverless more. Aurora Serverless may offer similar availability, management and cost benefits while allowing developers to use their MySQL tools and experience.
I have never contacted support for Amazon DynamoDB.
And I'm adding quite a lot of useless words to this explanation in order to reach the word count that is required despite the heading saying that I can skip this question. It seems there is then a bug here but what software does not have bugs?
We evaluated using MongoDB or Amazon DyanmoDB. For us, the biggest advantage is that there's no maintenance cost for Amazon DynamoDB. Mongo gets complicated when you setup sharding. With Amazon DynamoDB, it's literally a push of button to increase throughput. This saves time and money on DevOps resources.
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.
Since the Amazon manages the instance, the amount of time a developer needs to spend configuring the database is less. For comparison, if we were to manage the same instance manually, we need to set up EC2 instance, install the DB, setup backup scripts, track backup failures, which is a great overhead for the dev. Using DynamoDB this overhead is reduced and hence having a great ROI.
Great documentation and easy setup makes an easy learning curve to transition to DynamoDB. Only caveat is as with any database, the data structure should be thoroughly analyzed for types of querying because there are limitations with the DynamoDB API.
Ties very well with rest of the Amazon eco system. Having rest of the applications in Amazon allows managing the application security a breeze.