⚡ Tl;dr
- Document databases store and query documents in a key-value JSON-like structure. Some examples:
- Key-value databases store a collection of key-value pairs that can store simple or complex object types. Some examples:
- In-memory caches are key-value stores designed to minimize latency by storing the data in the main memory. Some examples:
🚀 Let’s kick-off
NoSQL databases are becoming increasingly popular for modern software applications as a data storage solution for fast-evolving systems. In this article, we’ll cover the top document, key-value and in-memory database solutions from the three major cloud providers, AWS, GCP and Azure.
❓ What are NoSQL databases?
NoSQL databases are designed to have flexible semi-structured schemas, making them great for modern applications where the data structures may be evolving quickly. They typically offer an easy development experience and high performance at scale. There are various types of NoSQL databases, such as document, key-value, and in-memory.
📄 Document stores
A document database stores and queries documents in a key-value, JSON-like structure, which makes it easy to work with. The flexible and hierarchical nature of these documents provides straightforward migration of the data structure as it evolves. Document databases typically scale horizontally, making them suitable for large data sets.
1️⃣ Amazon DocumentDB
Amazon DocumentDB is a fully managed native JSON document database that is highly available and scalable.
Features:
- Compatible with MongoDB APIs, drivers and tools.
- Scales to millions of read/writes per second and petabytes of storage.
- Storage, querying, indexing and aggregation of data.
- Automatic continuous backups for a 1-35 day period.
- High availability, durability and low-latency global reads.
- Uses MongoDB client libraries to connect to the database.
Subscribe to the latest updates for DocumentDB on StackShare.io.
2️⃣ Google Cloud Firestore
Google Cloud Firestore is a fully managed serverless document database with high availability and scalability.
Features:
- Scales to meet any demand with no maintenance.
- 99.999% availability guarantees with multi-region replication.
- Direct connections from mobile and web apps with a client SDK.
- Built-in live synchronization and offline mode with client SDK.
- Built-in security and data validation rules.
- Official Web, iOS, Android, Flutter, C++ and Unity client-side SDKs.
- Official NodeJS, Java, Go, Ruby and PHP server-side SDKs.
Subscribe to the latest updates for Firestore on StackShare.io.
3️⃣ Azure CosmosDB
Azure CosmosDB is a distributed NoSQL or relationship database for scalable and high-performance applications.
Features:
- Instant and limitless scalability with fast reads and multi-region writes.
- 99.999% availability for mission-critical applications.
- Automatic continuous backups for either 7 or 30-day periods.
- SDKs for .NET, Java, NodeJS, Python and Go.
- Support for PostgreSQL, MongoDB and Apache Cassandra.
Subscribe to the latest updates for CosmosDB on StackShare.io.
🔑 Key-value databases
A key-value database stores a collection of key-value pairs that can store simple or complex object types such as strings, numbers or objects. Due to its optimizations, simplicity and key-based structure, it’s highly performant and can reach scales that other database types cannot.
4️⃣ Amazon DynamoDB
Amazon DynamoDB is a fast key-value database for high-performance applications at any scale.
Features:
- Consistent single-digit millisecond performance.
- Near-unlimited throughout and storage.
- Multi-region replication with 99.999% availability.
- Automated and continuous backups of each table for the last 35 days.
- Use PartiQL for SQL-compatible query, insert, update and delete.
- Import and export data directly from Amazon S3.
- Compatible with NoSQL workbench.
Subscribe to the latest updates for DynamoDB on StackShare.io.
5️⃣ Google Cloud Bigtable
Google Cloud Bigtable is an enterprise-grade key-value and wide-column store for fast access to large amounts of data.
Features:
- Single-digit millisecond latency with high read and write throughput.
- Supports structured, semi-structured or unstructured data structures.
- Compatible with Apache HBase and Cassandra with no downtime/live migrations.
- 99.999% availability with multi-primary replication in up to 8 regions.
- Cluster scale and storage reconfiguration with no downtime.
- Write data once and automatically replicate with eventual consistency.
Subscribe to the latest updates for Bigtable on StackShare.io.
6️⃣ Azure Table Storage
Azure Table Storage is a key-value store for fast development with massive semi-structured data structures and high availability.
Features:
- Store petabytes of unstructured data.
- Geo-redundant storage and three replicas per region.
- Client libraries for .NET, Java, Android, C++, PHP, Ruby and Python.
- Perform OData-based queries.
Subscribe to the latest updates for Table storage on StackShare.io.
🧠 In-memory caches
An in-memory cache is a key-value store designed to minimize latency by storing the data on the main memory, removing the need for slower disks or SSDs. They are typically used as a caching mechanism and can persist data on disks by periodically taking memory snapshots.
7️⃣ Amazon MemoryDB
Amazon MemoryDB is a Redis-compatible in-memory database for ultra-fast performance.
Features:
- Extremely low latency with 160 million requests per second.
- Compatible with Redis data types, parameters and commands.
- Scale to hundreds of millions of requests per second.
- Storage space of over one hundred terabytes per cluster.
- Native JSON support and partial JSON document updates.
- 99.999% availability with near-instant recovery without data loss.
Subscribe to the latest updates for MemoryDB on StackShare.io.
8️⃣ Google Cloud Memorystore
Google Cloud Memorystore is a low latency, scalable and highly available in-memory database for Redis and Memcached.
Features:
- Sub-millisecond data access with more than 1 million queries per second.
- Fully compatible with Redis or Memcached protocols.
- Supports cluster sizes up to 5 terabytes.
- 99.9% availability supporting up to five read replicas and automatic failover.
- Supports Redis 6, 5.0, 4.0 and 3.2.
Subscribe to the latest updates for Memorystore on StackShare.io.
9️⃣ Azure Cache
Azure Cache is a distributed in-memory database for Redis with fast and scalable data access.
Features:
- Handles millions of requests per second with sub-millisecond latency.
- Compatible with Redis data types, parameters and commands.
- Integrates with RedisBloom, RediSearch, RedisJSON and RedisTimeSeries modules.
- 99.999% availability with clustering, Redis on Flash and geo-replication.
Subscribe to the latest updates for Cache on StackShare.io.
🏁 To wrap up
This list only includes managed databases provided by the three major cloud platforms. There are many other clouds, managed databases and open-source alternatives that aren’t on this list that you should investigate and compare.
Stay chill 🧊