Alternatives to Amazon DynamoDB logo

Alternatives to Amazon DynamoDB

Google Cloud Datastore, MongoDB, Amazon SimpleDB, MySQL, and Amazon S3 are the most popular alternatives and competitors to Amazon DynamoDB.
3.7K
3.2K
+ 1
195

What is Amazon DynamoDB and what are its top alternatives?

Amazon DynamoDB is a fully managed NoSQL database service provided by Amazon Web Services (AWS). It offers seamless scalability, high performance, and built-in security. Key features of DynamoDB include automatic replication across multiple data centers for high availability, flexible querying capabilities with secondary indexes, and support for ACID transactions. However, some limitations of DynamoDB include the high cost for large workloads, limited support for complex querying operations, and lack of support for certain data types.

  1. Cassandra: Cassandra is an open-source distributed NoSQL database known for its high availability and fault tolerance. It offers linear scalability, support for multiple data centers, and flexible data modeling. Pros: High availability, linear scalability. Cons: Complex configuration, potential performance issues with large datasets.
  2. MongoDB: MongoDB is a popular open-source NoSQL database that offers a document-based data model and flexible schema design. It provides high performance, automatic sharding for scalability, and rich query capabilities. Pros: Flexible schema design, high performance. Cons: Lack of ACID transactions, potential data consistency issues.
  3. Apache HBase: Apache HBase is an open-source distributed database that runs on top of the Hadoop Distributed File System (HDFS). It offers strong consistency, automatic sharding, and support for semi-structured data. Pros: Strong consistency, support for semi-structured data. Cons: Complex architecture, potential performance issues with large datasets.
  4. Google Cloud Bigtable: Google Cloud Bigtable is a fully managed NoSQL database service provided by Google Cloud Platform. It offers high performance, scalability, and seamless integration with other Google Cloud services. Pros: High performance, seamless integration with Google Cloud. Cons: Limited querying capabilities, potential cost issues for large workloads.
  5. ScyllaDB: ScyllaDB is a high-performance NoSQL database compatible with Apache Cassandra. It offers low latency, high throughput, and linear scalability. Pros: High performance, low latency. Cons: Limited community support, potential learning curve for Cassandra users transitioning to ScyllaDB.
  6. Microsoft Azure Cosmos DB: Azure Cosmos DB is a globally distributed, multi-model database service provided by Microsoft Azure. It offers support for multiple data models (document, key-value, graph, etc.), automatic scaling, and low latency. Pros: Globally distributed, multiple data models support. Cons: Potential cost issues for large workloads, limited query functionality.
  7. YugabyteDB: YugabyteDB is a distributed SQL database compatible with PostgreSQL. It offers high availability, scalability, and support for ACID transactions. Pros: Distributed SQL support, ACID transactions. Cons: Potential performance issues with complex queries, limited ecosystem compared to traditional SQL databases.
  8. FaunaDB: FaunaDB is a globally distributed, serverless cloud database that offers ACID transactions, multi-region support, and GraphQL API for flexible querying. Pros: Serverless architecture, multi-region support. Cons: Limited support for complex queries, potential cost concerns for large workloads.
  9. CockroachDB: CockroachDB is a distributed SQL database that offers strong consistency, high availability, and scalability. It is compatible with PostgreSQL and supports ACID transactions. Pros: Strong consistency, scalability. Cons: Potential performance issues with distributed transactions, complex configuration.
  10. Aerospike: Aerospike is a high-performance, distributed NoSQL database that offers low latency, high throughput, and automatic data partitioning. Pros: High performance, low latency. Cons: Potential cost concerns for large datasets, limited support for complex queries.

Top Alternatives to Amazon DynamoDB

  • Google Cloud Datastore
    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

    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
    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
    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 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 ...

  • Amazon Redshift
    Amazon Redshift

    It is optimized for data sets ranging from a few hundred gigabytes to a petabyte or more and costs less than $1,000 per terabyte per year, a tenth the cost of most traditional data warehousing solutions. ...

  • Cassandra
    Cassandra

    Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL. ...

  • Apache Aurora
    Apache Aurora

    Apache Aurora is a service scheduler that runs on top of Mesos, enabling you to run long-running services that take advantage of Mesos' scalability, fault-tolerance, and resource isolation. ...

Amazon DynamoDB alternatives & related posts

Google Cloud Datastore logo

Google Cloud Datastore

252
356
12
A Fully Managed NoSQL Data Storage Service
252
356
+ 1
12
PROS OF GOOGLE CLOUD DATASTORE
  • 7
    High scalability
  • 2
    Serverless
  • 2
    Ability to query any property
  • 1
    Pay for what you use
CONS OF GOOGLE CLOUD DATASTORE
    Be the first to leave a con

    related Google Cloud Datastore posts

    MongoDB logo

    MongoDB

    91.9K
    79.3K
    4.1K
    The database for giant ideas
    91.9K
    79.3K
    + 1
    4.1K
    PROS OF MONGODB
    • 827
      Document-oriented storage
    • 593
      No sql
    • 553
      Ease of use
    • 464
      Fast
    • 410
      High performance
    • 257
      Free
    • 218
      Open source
    • 180
      Flexible
    • 145
      Replication & high availability
    • 112
      Easy to maintain
    • 42
      Querying
    • 39
      Easy scalability
    • 38
      Auto-sharding
    • 37
      High availability
    • 31
      Map/reduce
    • 27
      Document database
    • 25
      Easy setup
    • 25
      Full index support
    • 16
      Reliable
    • 15
      Fast in-place updates
    • 14
      Agile programming, flexible, fast
    • 12
      No database migrations
    • 8
      Easy integration with Node.Js
    • 8
      Enterprise
    • 6
      Enterprise Support
    • 5
      Great NoSQL DB
    • 4
      Support for many languages through different drivers
    • 3
      Schemaless
    • 3
      Aggregation Framework
    • 3
      Drivers support is good
    • 2
      Fast
    • 2
      Managed service
    • 2
      Easy to Scale
    • 2
      Awesome
    • 2
      Consistent
    • 1
      Good GUI
    • 1
      Acid Compliant
    CONS OF MONGODB
    • 6
      Very slowly for connected models that require joins
    • 3
      Not acid compliant
    • 1
      Proprietary query language

    related MongoDB posts

    Shared insights
    on
    Node.jsNode.jsGraphQLGraphQLMongoDBMongoDB

    I just finished the very first version of my new hobby project: #MovieGeeks. It is a minimalist online movie catalog for you to save the movies you want to see and for rating the movies you already saw. This is just the beginning as I am planning to add more features on the lines of sharing and discovery

    For the #BackEnd I decided to use Node.js , GraphQL and MongoDB:

    1. Node.js has a huge community so it will always be a safe choice in terms of libraries and finding solutions to problems you may have

    2. GraphQL because I needed to improve my skills with it and because I was never comfortable with the usual REST approach. I believe GraphQL is a better option as it feels more natural to write apis, it improves the development velocity, by definition it fixes the over-fetching and under-fetching problem that is so common on REST apis, and on top of that, the community is getting bigger and bigger.

    3. MongoDB was my choice for the database as I already have a lot of experience working on it and because, despite of some bad reputation it has acquired in the last months, I still believe it is a powerful database for at least a very long list of use cases such as the one I needed for my website

    See more
    Vaibhav Taunk
    Team Lead at Technovert · | 31 upvotes · 3.9M views

    I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.

    See more
    Amazon SimpleDB logo

    Amazon SimpleDB

    21
    50
    0
    Highly available and flexible non-relational data store
    21
    50
    + 1
    0
    PROS OF AMAZON SIMPLEDB
      Be the first to leave a pro
      CONS OF AMAZON SIMPLEDB
        Be the first to leave a con

        related Amazon SimpleDB posts

        MySQL logo

        MySQL

        122.9K
        103.9K
        3.7K
        The world's most popular open source database
        122.9K
        103.9K
        + 1
        3.7K
        PROS OF MYSQL
        • 800
          Sql
        • 679
          Free
        • 562
          Easy
        • 528
          Widely used
        • 489
          Open source
        • 180
          High availability
        • 160
          Cross-platform support
        • 104
          Great community
        • 78
          Secure
        • 75
          Full-text indexing and searching
        • 25
          Fast, open, available
        • 16
          SSL support
        • 15
          Reliable
        • 14
          Robust
        • 8
          Enterprise Version
        • 7
          Easy to set up on all platforms
        • 2
          NoSQL access to JSON data type
        • 1
          Relational database
        • 1
          Easy, light, scalable
        • 1
          Sequel Pro (best SQL GUI)
        • 1
          Replica Support
        CONS OF MYSQL
        • 16
          Owned by a company with their own agenda
        • 3
          Can't roll back schema changes

        related MySQL posts

        Nick Rockwell
        SVP, Engineering at Fastly · | 46 upvotes · 3.5M views

        When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

        So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

        React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

        Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

        See more
        Tim Abbott

        We've been using PostgreSQL since the very early days of Zulip, but we actually didn't use it from the beginning. Zulip started out as a MySQL project back in 2012, because we'd heard it was a good choice for a startup with a wide community. However, we found that even though we were using the Django ORM for most of our database access, we spent a lot of time fighting with MySQL. Issues ranged from bad collation defaults, to bad query plans which required a lot of manual query tweaks.

        We ended up getting so frustrated that we tried out PostgresQL, and the results were fantastic. We didn't have to do any real customization (just some tuning settings for how big a server we had), and all of our most important queries were faster out of the box. As a result, we were able to delete a bunch of custom queries escaping the ORM that we'd written to make the MySQL query planner happy (because postgres just did the right thing automatically).

        And then after that, we've just gotten a ton of value out of postgres. We use its excellent built-in full-text search, which has helped us avoid needing to bring in a tool like Elasticsearch, and we've really enjoyed features like its partial indexes, which saved us a lot of work adding unnecessary extra tables to get good performance for things like our "unread messages" and "starred messages" indexes.

        I can't recommend it highly enough.

        See more
        Amazon S3 logo

        Amazon S3

        52.6K
        39.3K
        2K
        Store and retrieve any amount of data, at any time, from anywhere on the web
        52.6K
        39.3K
        + 1
        2K
        PROS OF AMAZON S3
        • 590
          Reliable
        • 492
          Scalable
        • 456
          Cheap
        • 329
          Simple & easy
        • 83
          Many sdks
        • 30
          Logical
        • 13
          Easy Setup
        • 11
          REST API
        • 11
          1000+ POPs
        • 6
          Secure
        • 4
          Plug and play
        • 4
          Easy
        • 3
          Web UI for uploading files
        • 2
          Faster on response
        • 2
          Flexible
        • 2
          GDPR ready
        • 1
          Easy to use
        • 1
          Plug-gable
        • 1
          Easy integration with CloudFront
        CONS OF AMAZON S3
        • 7
          Permissions take some time to get right
        • 6
          Requires a credit card
        • 6
          Takes time/work to organize buckets & folders properly
        • 3
          Complex to set up

        related Amazon S3 posts

        Ashish Singh
        Tech Lead, Big Data Platform at Pinterest · | 38 upvotes · 3M views

        To provide employees with the critical need of interactive querying, we’ve worked with Presto, an open-source distributed SQL query engine, over the years. Operating Presto at Pinterest’s scale has involved resolving quite a few challenges like, supporting deeply nested and huge thrift schemas, slow/ bad worker detection and remediation, auto-scaling cluster, graceful cluster shutdown and impersonation support for ldap authenticator.

        Our infrastructure is built on top of Amazon EC2 and we leverage Amazon S3 for storing our data. This separates compute and storage layers, and allows multiple compute clusters to share the S3 data.

        We have hundreds of petabytes of data and tens of thousands of Apache Hive tables. Our Presto clusters are comprised of a fleet of 450 r4.8xl EC2 instances. Presto clusters together have over 100 TBs of memory and 14K vcpu cores. Within Pinterest, we have close to more than 1,000 monthly active users (out of total 1,600+ Pinterest employees) using Presto, who run about 400K queries on these clusters per month.

        Each query submitted to Presto cluster is logged to a Kafka topic via Singer. Singer is a logging agent built at Pinterest and we talked about it in a previous post. Each query is logged when it is submitted and when it finishes. When a Presto cluster crashes, we will have query submitted events without corresponding query finished events. These events enable us to capture the effect of cluster crashes over time.

        Each Presto cluster at Pinterest has workers on a mix of dedicated AWS EC2 instances and Kubernetes pods. Kubernetes platform provides us with the capability to add and remove workers from a Presto cluster very quickly. The best-case latency on bringing up a new worker on Kubernetes is less than a minute. However, when the Kubernetes cluster itself is out of resources and needs to scale up, it can take up to ten minutes. Some other advantages of deploying on Kubernetes platform is that our Presto deployment becomes agnostic of cloud vendor, instance types, OS, etc.

        #BigData #AWS #DataScience #DataEngineering

        See more
        Russel Werner
        Lead Engineer at StackShare · | 32 upvotes · 2.2M views

        StackShare Feed is built entirely with React, Glamorous, and Apollo. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. We use an in-house Node.js rendering microservice to generate this HTML. This microservice needs to run and serve requests independent of our Rails web app. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes.

        Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. A new CircleCI script builds the bundles and uploads them to S3. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. The result of these efforts were significant. Our frontend team now moves independently of our backend team, our build & release process takes only a few minutes, we are now using an edge CDN to serve JS assets, and we have pre-rendered React pages!

        #StackDecisionsLaunch #SSR #Microservices #FrontEndRepoSplit

        See more
        Amazon Redshift logo

        Amazon Redshift

        1.5K
        1.4K
        108
        Fast, fully managed, petabyte-scale data warehouse service
        1.5K
        1.4K
        + 1
        108
        PROS OF AMAZON REDSHIFT
        • 41
          Data Warehousing
        • 27
          Scalable
        • 17
          SQL
        • 14
          Backed by Amazon
        • 5
          Encryption
        • 1
          Cheap and reliable
        • 1
          Isolation
        • 1
          Best Cloud DW Performance
        • 1
          Fast columnar storage
        CONS OF AMAZON REDSHIFT
          Be the first to leave a con

          related Amazon Redshift posts

          Julien DeFrance
          Principal Software Engineer at Tophatter · | 16 upvotes · 3.1M views

          Back in 2014, I was given an opportunity to re-architect SmartZip Analytics platform, and flagship product: SmartTargeting. This is a SaaS software helping real estate professionals keeping up with their prospects and leads in a given neighborhood/territory, finding out (thanks to predictive analytics) who's the most likely to list/sell their home, and running cross-channel marketing automation against them: direct mail, online ads, email... The company also does provide Data APIs to Enterprise customers.

          I had inherited years and years of technical debt and I knew things had to change radically. The first enabler to this was to make use of the cloud and go with AWS, so we would stop re-inventing the wheel, and build around managed/scalable services.

          For the SaaS product, we kept on working with Rails as this was what my team had the most knowledge in. We've however broken up the monolith and decoupled the front-end application from the backend thanks to the use of Rails API so we'd get independently scalable micro-services from now on.

          Our various applications could now be deployed using AWS Elastic Beanstalk so we wouldn't waste any more efforts writing time-consuming Capistrano deployment scripts for instance. Combined with Docker so our application would run within its own container, independently from the underlying host configuration.

          Storage-wise, we went with Amazon S3 and ditched any pre-existing local or network storage people used to deal with in our legacy systems. On the database side: Amazon RDS / MySQL initially. Ultimately migrated to Amazon RDS for Aurora / MySQL when it got released. Once again, here you need a managed service your cloud provider handles for you.

          Future improvements / technology decisions included:

          Caching: Amazon ElastiCache / Memcached CDN: Amazon CloudFront Systems Integration: Segment / Zapier Data-warehousing: Amazon Redshift BI: Amazon Quicksight / Superset Search: Elasticsearch / Amazon Elasticsearch Service / Algolia Monitoring: New Relic

          As our usage grows, patterns changed, and/or our business needs evolved, my role as Engineering Manager then Director of Engineering was also to ensure my team kept on learning and innovating, while delivering on business value.

          One of these innovations was to get ourselves into Serverless : Adopting AWS Lambda was a big step forward. At the time, only available for Node.js (Not Ruby ) but a great way to handle cost efficiency, unpredictable traffic, sudden bursts of traffic... Ultimately you want the whole chain of services involved in a call to be serverless, and that's when we've started leveraging Amazon DynamoDB on these projects so they'd be fully scalable.

          See more
          Ankit Sobti

          Looker , Stitch , Amazon Redshift , dbt

          We recently moved our Data Analytics and Business Intelligence tooling to Looker . It's already helping us create a solid process for reusable SQL-based data modeling, with consistent definitions across the entire organizations. Looker allows us to collaboratively build these version-controlled models and push the limits of what we've traditionally been able to accomplish with analytics with a lean team.

          For Data Engineering, we're in the process of moving from maintaining our own ETL pipelines on AWS to a managed ELT system on Stitch. We're also evaluating the command line tool, dbt to manage data transformations. Our hope is that Stitch + dbt will streamline the ELT bit, allowing us to focus our energies on analyzing data, rather than managing it.

          See more
          Cassandra logo

          Cassandra

          3.5K
          3.5K
          507
          A partitioned row store. Rows are organized into tables with a required primary key.
          3.5K
          3.5K
          + 1
          507
          PROS OF CASSANDRA
          • 119
            Distributed
          • 98
            High performance
          • 81
            High availability
          • 74
            Easy scalability
          • 53
            Replication
          • 26
            Reliable
          • 26
            Multi datacenter deployments
          • 10
            Schema optional
          • 9
            OLTP
          • 8
            Open source
          • 2
            Workload separation (via MDC)
          • 1
            Fast
          CONS OF CASSANDRA
          • 3
            Reliability of replication
          • 1
            Size
          • 1
            Updates

          related Cassandra posts

          Thierry Schellenbach
          Shared insights
          on
          GolangGolangPythonPythonCassandraCassandra
          at

          After years of optimizing our existing feed technology, we decided to make a larger leap with 2.0 of Stream. While the first iteration of Stream was powered by Python and Cassandra, for Stream 2.0 of our infrastructure we switched to Go.

          The main reason why we switched from Python to Go is performance. Certain features of Stream such as aggregation, ranking and serialization were very difficult to speed up using Python.

          We’ve been using Go since March 2017 and it’s been a great experience so far. Go has greatly increased the productivity of our development team. Not only has it improved the speed at which we develop, it’s also 30x faster for many components of Stream. Initially we struggled a bit with package management for Go. However, using Dep together with the VG package contributed to creating a great workflow.

          Go as a language is heavily focused on performance. The built-in PPROF tool is amazing for finding performance issues. Uber’s Go-Torch library is great for visualizing data from PPROF and will be bundled in PPROF in Go 1.10.

          The performance of Go greatly influenced our architecture in a positive way. With Python we often found ourselves delegating logic to the database layer purely for performance reasons. The high performance of Go gave us more flexibility in terms of architecture. This led to a huge simplification of our infrastructure and a dramatic improvement of latency. For instance, we saw a 10 to 1 reduction in web-server count thanks to the lower memory and CPU usage for the same number of requests.

          #DataStores #Databases

          See more
          Thierry Schellenbach
          Shared insights
          on
          RedisRedisCassandraCassandraRocksDBRocksDB
          at

          1.0 of Stream leveraged Cassandra for storing the feed. Cassandra is a common choice for building feeds. Instagram, for instance started, out with Redis but eventually switched to Cassandra to handle their rapid usage growth. Cassandra can handle write heavy workloads very efficiently.

          Cassandra is a great tool that allows you to scale write capacity simply by adding more nodes, though it is also very complex. This complexity made it hard to diagnose performance fluctuations. Even though we had years of experience with running Cassandra, it still felt like a bit of a black box. When building Stream 2.0 we decided to go for a different approach and build Keevo. Keevo is our in-house key-value store built upon RocksDB, gRPC and Raft.

          RocksDB is a highly performant embeddable database library developed and maintained by Facebook’s data engineering team. RocksDB started as a fork of Google’s LevelDB that introduced several performance improvements for SSD. Nowadays RocksDB is a project on its own and is under active development. It is written in C++ and it’s fast. Have a look at how this benchmark handles 7 million QPS. In terms of technology it’s much more simple than Cassandra.

          This translates into reduced maintenance overhead, improved performance and, most importantly, more consistent performance. It’s interesting to note that LinkedIn also uses RocksDB for their feed.

          #InMemoryDatabases #DataStores #Databases

          See more
          Apache Aurora logo

          Apache Aurora

          69
          96
          0
          An Apcahe Mesos framework for scheduling jobs, originally developed by Twitter
          69
          96
          + 1
          0
          PROS OF APACHE AURORA
            Be the first to leave a pro
            CONS OF APACHE AURORA
              Be the first to leave a con

              related Apache Aurora posts

              Docker containers on Mesos run their microservices with consistent configurations at scale, along with Aurora for long-running services and cron jobs.

              See more