Amazon DynamoDB vs Neo4j

Need advice about which tool to choose?Ask the StackShare community!

Amazon DynamoDB

3.7K
3.2K
+ 1
195
Neo4j

1.2K
1.4K
+ 1
352
Add tool

Amazon DynamoDB vs Neo4j: What are the differences?

Amazon DynamoDB and Neo4j are both highly popular and widely used NoSQL databases, but they differ in their core functionality and design. Here are the key differences between Amazon DynamoDB and Neo4j:

  1. Data Model: Amazon DynamoDB is a document-based NoSQL database, meaning it stores structured data in JSON-like documents. It offers a key-value model with optional secondary indexes. On the other hand, Neo4j is a graph database that represents data as nodes, relationships between nodes, and properties associated with nodes and relationships. It enables high-performance graph traversal and complex querying.

  2. Querying Abilities: DynamoDB offers simple querying capabilities using primary keys and secondary indexes. It supports basic CRUD operations and can perform range queries on numeric and string attributes. In contrast, Neo4j provides powerful graph querying capabilities that allow traversing complex relationships and patterns. It supports graph-oriented queries to find paths, shortest paths, common nodes, and more.

  3. Scalability: DynamoDB is a fully managed, highly scalable database that automatically scales horizontally without downtime. It can handle large volumes of traffic and offer low latency with automatic data replication across multiple availability zones. Neo4j, on the other hand, is designed to work on a single server or cluster and requires manual scaling to handle high loads.

  4. ACID Compliance: DynamoDB ensures Atomicity, Consistency, Isolation, and Durability (ACID) properties only within a single partition or item. It does not guarantee ACID across multiple partitions or items. On the other hand, Neo4j offers transactional consistency on a global scale, allowing ACID operations across the entire dataset.

  5. Data Relationships: DynamoDB does not have built-in support for relationships between different items. It is primarily designed for key-value data storage. In contrast, Neo4j's graph database model is specifically designed to handle complex relationships between entities. It allows developers to define relationships between nodes and perform efficient queries based on those relationships.

  6. Use Cases: Due to its document-based structure, DynamoDB is suitable for applications with predominantly read-heavy workloads and simple data access patterns. It is commonly used for real-time applications, gaming, and content management systems. Neo4j, with its graph database capabilities, is ideal for applications that heavily rely on analyzing and querying complex relationships, such as social networks, fraud detection, recommendation systems, and knowledge graphs.

In Summary, Amazon DynamoDB is a scalable, document-based NoSQL database with key-value storage, while Neo4j is a powerful graph database with extensive graph querying capabilities and support for relationships. DynamoDB is suitable for read-heavy workloads and simple data access patterns, whereas Neo4j excels in applications with complex relationship analysis and querying requirements.

Advice on Amazon DynamoDB and Neo4j
Jaime Ramos
Needs advice
on
ArangoDBArangoDBDgraphDgraph
and
Neo4jNeo4j

Hi, I want to create a social network for students, and I was wondering which of these three Oriented Graph DB's would you recommend. I plan to implement machine learning algorithms such as k-means and others to give recommendations and some basic data analyses; also, everything is going to be hosted in the cloud, so I expect the DB to be hosted there. I want the queries to be as fast as possible, and I like good tools to monitor my data. I would appreciate any recommendations or thoughts.

Context:

I released the MVP 6 months ago and got almost 600 users just from my university in Colombia, But now I want to expand it all over my country. I am expecting more or less 20000 users.

See more
Replies (3)
Recommends
on
ArangoDBArangoDB

I have not used the others but I agree, ArangoDB should meet your needs. If you have worked with RDBMS and SQL before Arango will be a easy transition. AQL is simple yet powerful and deployment can be as small or large as you need. I love the fact that for my local development I can run it as docker container as part of my project and for production I can have multiple machines in a cluster. The project is also under active development and with the latest round of funding I feel comfortable that it will be around a while.

See more
David López Felguera
Full Stack Developer at NPAW · | 5 upvotes · 48.2K views
Recommends
on
ArangoDBArangoDB

Hi Jaime. I've worked with Neo4j and ArangoDB for a few years and for me, I prefer to use ArangoDB because its query sintax (AQL) is easier. I've built a network topology with both databases and now ArangoDB is the databases for that network topology. Also, ArangoDB has ArangoML that maybe can help you with your recommendation algorithims.

See more
Recommends
on
ArangoDBArangoDB

Hi Jaime, I work with Arango for about 3 years quite a lot. Before I do some investigation and choose ArangoDB against Neo4j due to multi-type DB, speed, and also clustering (but we do not use it now). Now we have RMDB and Graph working together. As others said, AQL is quite easy, but u can use some of the drivers like Java Spring, that get you to another level.. If you prefer more copy-paste with little rework, perhaps Neo4j can do the job for you, because there is a bigger community around it.. But I have to solve some issues with the ArangoDB community and its also fast. So I will preffere ArangoDB... Btw, there is a super easy Foxx Microservice tool on Arango that can help you solve basic things faster than write down robust BackEnd.

See more

We are building a social media app, where users will post images, like their post, and make friends based on their interest. We are currently using Cloud Firestore and Firebase Realtime Database. We are looking for another database like Amazon DynamoDB; how much this decision can be efficient in terms of pricing and overhead?

See more
Replies (1)
William Frank
Data Science and Engineering at GeistM · | 2 upvotes · 108.3K views
Recommends

Hi, Akash,

I wouldn't make this decision without lots more information. Cloud Firestore has a much richer metamodel (document-oriented) than Dynamo (key-value), and Dynamo seems to be particularly restrictive. That is why it is so fast. There are many needs in most applications to get lightning access to the members of a set, one set at a time. Dynamo DB is a great choice. But, social media applications generally need to be able to make long traverses across a graph. While you can make almost any metamodel act like another one, with your own custom layers on top of it, or just by writing a lot more code, it's a long way around to do that with simple key-value sets. It's hard enough to traverse across networks of collections in a document-oriented database. So, if you are moving, I think a graph-oriented database like Amazon Neptune, or, if you might want built-in reasoning, Allegro or Ontotext, would take the least programming, which is where the most cost and bugs can be avoided. Also, managed systems are also less costly in terms of people's time and system errors. It's easier to measure the costs of managed systems, so they are often seen as more costly.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Amazon DynamoDB
Pros of Neo4j
  • 62
    Predictable performance and cost
  • 56
    Scalable
  • 35
    Native JSON Support
  • 21
    AWS Free Tier
  • 7
    Fast
  • 3
    No sql
  • 3
    To store data
  • 2
    Serverless
  • 2
    No Stored procedures is GOOD
  • 1
    ORM with DynamoDBMapper
  • 1
    Elastic Scalability using on-demand mode
  • 1
    Elastic Scalability using autoscaling
  • 1
    DynamoDB Stream
  • 70
    Cypher – graph query language
  • 61
    Great graphdb
  • 33
    Open source
  • 31
    Rest api
  • 27
    High-Performance Native API
  • 23
    ACID
  • 21
    Easy setup
  • 17
    Great support
  • 11
    Clustering
  • 9
    Hot Backups
  • 8
    Great Web Admin UI
  • 7
    Powerful, flexible data model
  • 7
    Mature
  • 6
    Embeddable
  • 5
    Easy to Use and Model
  • 4
    Best Graphdb
  • 4
    Highly-available
  • 2
    It's awesome, I wanted to try it
  • 2
    Great onboarding process
  • 2
    Great query language and built in data browser
  • 2
    Used by Crunchbase

Sign up to add or upvote prosMake informed product decisions

Cons of Amazon DynamoDB
Cons of Neo4j
  • 4
    Only sequential access for paginate data
  • 1
    Scaling
  • 1
    Document Limit Size
  • 9
    Comparably slow
  • 4
    Can't store a vertex as JSON
  • 1
    Doesn't have a managed cloud service at low cost

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is Amazon DynamoDB?

With it , you can offload the administrative burden of operating and scaling a highly available distributed database cluster, while paying a low price for only what you use.

What is Neo4j?

Neo4j stores data in nodes connected by directed, typed relationships with properties on both, also known as a Property Graph. It is a high performance graph store with all the features expected of a mature and robust database, like a friendly query language and ACID transactions.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Amazon DynamoDB?
What companies use Neo4j?
See which teams inside your own company are using Amazon DynamoDB or Neo4j.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Amazon DynamoDB?
What tools integrate with Neo4j?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

GitHubPythonNode.js+47
55
72364
GitHubGitSlack+30
27
18372
GitHubDockerAmazon EC2+23
12
6572
GitHubPythonSlack+25
7
3166
DockerSlackAmazon EC2+17
18
5980
What are some alternatives to Amazon DynamoDB and Neo4j?
Google Cloud Datastore
Use a managed, NoSQL, schemaless database for storing non-relational data. Cloud Datastore automatically scales as you need it and supports transactions as well as robust, SQL-like queries.
MongoDB
MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
Amazon SimpleDB
Developers simply store and query data items via web services requests and Amazon SimpleDB does the rest. Behind the scenes, Amazon SimpleDB creates and manages multiple geographically distributed replicas of your data automatically to enable high availability and data durability. Amazon SimpleDB provides a simple web services interface to create and store multiple data sets, query your data easily, and return the results. Your data is automatically indexed, making it easy to quickly find the information that you need. There is no need to pre-define a schema or change a schema if new data is added later. And scale-out is as simple as creating new domains, rather than building out new servers.
MySQL
The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
Amazon S3
Amazon Simple Storage Service provides a fully redundant data storage infrastructure for storing and retrieving any amount of data, at any time, from anywhere on the web
See all alternatives