Highly scalable, fault tolerant, open source NoSQL store with document and key-value models. Use as distributed SQL DB when needed. More built-in goodness than DynamoDB at only 10% of the cost.
Sub-ms latency with built-in distributed cache, no additional expense. DynamoDB requires add-on services such as DAX or ElastiCache to achieve same result.
Zero data loss writes and strongly consistent reads even across multiple regions. Cluster self-heals in presence of failures. DynamoDB’s expensive global tables add-on can lead to data loss from unpredictable conflict resolution.
High performance single row/shard ACID combined with highly reliable distributed ACID to cover multiple workloads. DynamoDB support for transactions is severely limited.
Strongly consistent secondary indexes at global scale. DynamoDB global secondary indexes are eventually consistent and hence are not guaranteed to return correct results.
Both databases support auto-sharding and load balancing. However, linear scalability in DynamoDB comes with over-provisioning costs when operating at scale.
Keep compute costs low by storing 10s of TBs per node. Excellent fit for powering ever-growing data apps. DynamoDB only good for small data apps given the 10GB partition limit and hottest-partition-driven total throughput provisioning.
Built-in Prometheus monitoring & alerting as well as full access to logs for easy troubleshooting. No more struggles in debugging zone or node failures, network congestion or high read latency.
Plug into Kubernetes-based CI/CD pipeline to reliably test every release before production. Local DynamoDB emulator is incomplete while full DynamoDB cluster is cost prohibitive for automation testing.