A few years ago, Microsoft offered DocumentDB as a Service (DaaS) that supported a limited set of features and functionalities. Today, most of the cloud-based services, such as Bing, Azure, and Office 365 are using DocumentDB. Microsoft took DocumentDB to the next level and came up with Azure Cosmos DB - a globally distributed, multi-model database.
Azure Cosmos DB is one of the latest cloud based database services. It is a schema-free database system designed for scalable, broadly distributed, highly responsive, and highly available applications. Azure Cosmos DB also supports several NoSQL APIs including DocumentDB, SQL, MongoDB, Gremlin, and Azure Tables. It can handle a variety of data to store like key-value, document, columnar, and graph types in a variety of environments, including Internet of Things (IoT) and others.
Azure Cosmos DB is a schema agnostic database engine to support multiple systems. This is a schema on-read database which provides faster DB write operations.
Key capabilities of Azure Cosmos DB
- Global Distribution - distribute the application instantly,
- Local distribution - All resources available in a region will be horizontally partitioned using resource partitions.
- Global Distributions - this is a distribution of resource partition across geographical regions.
- Multi-model, multi-API support: This database engine is based on the atom-record-sequence (ARS) data model.
- Atom (A) – Atoms consist of a small set of primitive data types like number, string, and Boolean.
- Record (R) - Records are structs composed of types stored in Atom.
- Sequence (S) - Sequences represent arrays consisting of atoms, records, or sequences.
- Horizontal scaling of storage and throughput
It is designed to manage elastically scaled throughput, based on the application traffic patterns across different geographical regions to support fluctuating workloads varying both by geography and time.
- Low latency
Microsoft assures end-to-end very low latency in the 99th percentile within the same Azure region. Cosmos DB provides a method for the user to distinguish between transactions with high latency vs. a database being unavailable.
- Transparent multi-homing
Transparent multi-homing is a capability that supports an application in the unlikely event of regional failure or disaster. Azure Cosmos DB automatically fails in the order of defined priority. Priorities can be used to direct the requests to specific available regions in the event of regional failures. One of the best parts is dynamic association of “priority” to the regions associated with the Azure Cosmos DB database account.
- Multiple, well-defined consistency models
Offers more granular options over the control that decides database performance, and consistency.
- Schema-free
It automatically indexes all the data it ingests without requiring any schema or indexes.
- Query the data for high availability
Querying like DocumentDB SQL, MongoDB, Gremlin (preview), and Azure Tables (preview).
In case you want to read a detailed introduction, please follow this link.