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

Become An Insider

Sign up now and get FREE access to hundreds of Insider articles, guides, reviews, interviews, blogs, and other premium content. Learn more.
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.

To continue reading this article register now