Azure Cosmos DB is Microsoft’s globally distributed, multi-model database service.
If you are curious about Cosmos DB the link above is a good place to start. The current definition of the service is much longer than that one sentence, but I like the simplicity of it. I think for many of the developers that Cosmos is targeted towards, this is really enough to know. Cosmos is a database service that you can use for the backend of your application. It works anywhere in the world that you can connect to Azure services, it works relatively quickly, and allows you to use a variety of API models to connect to it. Some of the more common ones are the SQL Core API (which grew out of Azure DocumentDB), MongoDB, and a graph API using Gremlin.
All of these APIs sit on top of a common database engine called the Atom Record Sequence (ARS). ARS is a proprietary solution from Microsoft that creates the actual architecture of Cosmos DB under the hood. This can be pictured as data being broken down into “atoms” of numbers, strings, and Boolean values which are put into arrays of data. A Cosmos DB account allows you to specify how you want to access the data.
The most commonly discussed API is the SQL core API which can be thought of as a document store for JSON documents. Cosmos uses Containers to identify a collection of documents and a defined key value in each document is used to partition the information horizontally. If you are familiar with MongoDB or AWS’s Dynamo it is very similar.
In my experience much of the documentation for Cosmos is written for application or full-stack developers and it is rare to find examples that don’t include using the .Net API to connect, write, read, and manipulate the data in Cosmos DB. This can be a little daunting for someone, like myself, coming from a more database sided background, but there is good reason for this approach. Creating an application quickly and easily will allow for more developers to use Cosmos. Once an application starts to scale it starts to be useful for someone on the database side to get involved and it’s also a pretty interesting platform to learn about if you are into that kind of thing. Some settings and architecture, like the partition key, are best chosen from the beginning, but that can be said of any database platform.
All of this is a long way to saying, Cosmos DB is now one of the ways you can store your data in the cloud. It also happens to be what is generally know as a NoSQL database.