Azure Cosmos DB

Azure Cosmos DB is a multi-model NoSQL database management system.

  • Data as partitioned set of documents
  • Supports JavaScript Object Notation (JSON)
  • Supports APIs
    • SQL, Table, MongoDB, Cassandra, Gremlin
  • Highly scalable
  • Single-digit millisecond response times • Automatic and instant scalability,
  • Guarantee speed at any scale

Advantages of Cosmos DB

  • High availability of 99.999%
  • Replication across regions
  • 10-ms latencies for reads/writes
  • Certified for compliance standards
  • Encrypted at rest and in motion

Use Cases of Cosmos DB

  • Frequent bursts of large activities (IoT)
  • Single digit latency (gaming)
  • Elastic scaled up or down (eCommerce)

Core components

  • Database account
  • Database
  • Container
  • Items

Tools

  • Azure Portal
  • PowerShell / Azure CLI
  • ARM Templates
  • APIs and SDKs
  • .NET, Java, Spring, Node.js, Python SDKs
  • MongoDB, Table, Gremlin, Cassandra API

Key management tasks

  • Choose the most appropriate data model
  • Plan capacity and costs
  • Choose the right throughput mode
  • Configure global distribution

General recommendations

  • Use the latest SDK
  • Log metrics by using the Azure portal
  • Run your app in the same Azure region as your Azure Cosmos DB account, whenever possible.
  • Availability issues due to lack of resources on your client machine

References