Cosmos DB review: Database for a small planet

Multi-model Azure database combines global reach and a choice of five consistency models, allowing you to trade off cost for consistency

At a Glance

If you do business around the world, you may need a scalable, distributed, global database. You have several choices including Google Cloud Spanner, the open source CockroachDB, the graph database Neo4j, and the subject of this review, Azure Cosmos DB.

Azure Cosmos DB is a globally distributed, horizontally partitioned, multi-model database service. It offers four data models (key-value, column family, document, and graph) and five tunable consistency levels (strong, bounded staleness, session, consistent prefix, and eventual consistency). It offers five API sets: SQL (dialect), MongoDB-compatible, Azure Table-compatible, graph (Gremlin), and Apache Cassandra-compatible. Cosmos DB automatically indexes all data without requiring you to deal with schema and index management.

The design goals of Cosmos DB include elastic global scalability, low-cost operation, low read and write latencies, 99.99 percent availability, predictable and tunable data consistency, stringent financially-backed comprehensive SLAs, automatic schema/index management and versioning, native support for multiple data models, and popular APIs for accessing data. Yes, that’s a mouthful, as well as just a little ambitious, but it all works.

Cosmos DB is both similar to and different from each of Google Cloud Spanner, CockroachDB, and Neo4j. Google Cloud Spanner and CockroachDB offer SQL, strong consistency, cluster consensus, automatic horizontal partitioning, and the use of clock synchronization across nodes; Azure Cosmos DB does all of that, and it offers weaker consistency models that provide better performance and lower latency.

Google Cloud Spanner, CockroachDB, and Cosmos DB use markedly different dialects of SQL, with CockroachDB being the only one that is compatible with a widely adopted database (PostgreSQL). CockroachDB and Cosmos DB use hybrid logical clocks; Google Cloud Spanner uses the TrueTime API, GPS clocks, and atomic clocks.

To continue reading this article register now

How to choose a low-code development platform