Introduction to NoSQL in Cosmos DB

In this chapter, we will start our journey toward developing applications that work with a globally distributed, massively scalable, and multi-model database service provided by Microsoft: Azure Cosmos DB. We will focus on a high-level technical overview of this innovative database service.

Modern applications that take advantage of Azure and other cloud platforms usually require working with massive amounts of data that might be organized in different ways. In addition, these applications require elastic scale out of storage and throughput. We might start with a few gigabytes, but we can end up with many petabytes in months. Our application can start working with most clients in California, but it might expand its clients in Germany, Switzerland, and Norway in the near future. Of course, our application will be continuously evolving and we will have to store more data related to each performed operation based on the new requirements. In this chapter, we will understand why Cosmos DB is an excellent candidate to be used as a database service in these kinds of applications.

In this chapter, we will cover the following:

  • Making the paradigm shift to the NoSQL way 
  • Learning about the main features of Cosmos DB
  • Understanding the supported NoSQL data models
  • Using the appropriate API for each data model
  • Diving deep into the Cosmos DB resource model
  • Understanding the system topology
  • Learning about the resource hierarchy for each container