Study Guide for Exam DP-420: Designing and Implementing Cloud-Native Applications Using Microsoft Azure Cosmos DB

Purpose of this document

This study guide should help you understand what to expect on the exam and includes a summary of the topics the exam might cover and links to additional resources. The information and materials in this document should help you focus your studies as you prepare for the exam.

Useful links Description
Review the skills measured as of April 24, 2024 This list represents the skills measured AFTER the date provided. Study this list if you plan to take the exam AFTER that date.
Review the skills measured prior to April 24, 2024 Study this list of skills if you take your exam PRIOR to the date provided.
Change log You can go directly to the change log if you want to see the changes that will be made on the date provided.
How to earn the certification Some certifications only require passing one exam, while others require passing multiple exams.
Certification renewal Microsoft associate, expert, and specialty certifications expire annually. You can renew by passing a free online assessment on Microsoft Learn.
Your Microsoft Learn profile Connecting your certification profile to Microsoft Learn allows you to schedule and renew exams and share and print certificates.
Exam scoring and score reports A score of 700 or greater is required to pass.
Exam sandbox You can explore the exam environment by visiting our exam sandbox.
Request accommodations If you use assistive devices, require extra time, or need modification to any part of the exam experience, you can request an accommodation.
Take a practice test Are you ready to take the exam or do you need to study a bit more?

Updates to the exam

Our exams are updated periodically to reflect skills that are required to perform a role. We have included two versions of the Skills Measured objectives depending on when you are taking the exam.

We always update the English language version of the exam first. Some exams are localized into other languages, and those are updated approximately eight weeks after the English version is updated. While Microsoft makes every effort to update localized versions as noted, there may be times when the localized versions of an exam are not updated on this schedule. Other available languages are listed in the Schedule Exam section of the Exam Details webpage. If the exam isn't available in your preferred language, you can request an additional 30 minutes to complete the exam.

Note

The bullets that follow each of the skills measured are intended to illustrate how we are assessing that skill. Related topics may be covered in the exam.

Note

Most questions cover features that are general availability (GA). The exam may contain questions on Preview features if those features are commonly used.

Skills measured as of April 24, 2024

Audience profile

As a candidate for this exam, you should have subject matter expertise designing, implementing, and monitoring cloud-native applications that store and manage data.

Your responsibilities for this role include:

  • Designing and implementing data models and data distribution.

  • Loading data into an Azure Cosmos DB database.

  • Optimizing and maintaining the solution.

As a professional in this role, you integrate the solution with other Azure services. You also design, implement, and monitor solutions that consider security, availability, resilience, and performance requirements.

As a candidate for this exam, you must have solid knowledge and experience with:

  • Developing apps for Azure.

  • Working with Azure Cosmos DB database technologies.

  • Creating server-side objects with JavaScript.

You should be proficient at developing applications that use the Azure Cosmos DB for NoSQL API. You should be able to:

  • Write efficient SQL queries for the API.

  • Create appropriate indexing policies.

  • Interpret JSON.

  • Read C# or Java code.

  • Use PowerShell.

Additionally, you should be familiar with provisioning and managing resources in Azure.

Skills at a glance

  • Design and implement data models (35–40%)

  • Design and implement data distribution (5–10%)

  • Integrate an Azure Cosmos DB solution (5–10%)

  • Optimize an Azure Cosmos DB solution (15–20%)

  • Maintain an Azure Cosmos DB solution (25–30%)

Design and implement data models (35–40%)

Design and implement a non-relational data model for Azure Cosmos DB for NoSQL

  • Develop a design by storing multiple entity types in the same container

  • Develop a design by storing multiple related entities in the same document

  • Develop a model that denormalizes data across documents

  • Develop a design by referencing between documents

  • Identify primary and unique keys

  • Identify data and associated access patterns

  • Specify a default time to live (TTL) on a container for a transactional store

Design a data partitioning strategy for Azure Cosmos DB for NoSQL

  • Choose a partitioning strategy based on a specific workload

  • Choose a partition key

  • Plan for transactions when choosing a partition key

  • Evaluate the cost of using a cross-partition query

  • Calculate and evaluate data distribution based on partition key selection

  • Calculate and evaluate throughput distribution based on partition key selection

  • Construct and implement a synthetic partition key

  • Design and implement a hierarchical partition key

  • Design partitioning for workloads that require multiple partition keys

Plan and implement sizing and scaling for a database created with Azure Cosmos DB

  • Evaluate the throughput and data storage requirements for a specific workload

  • Choose between serverless and provisioned models

  • Choose when to use database-level provisioned throughput

  • Design for granular scale units and resource governance

  • Evaluate the cost of the global distribution of data

  • Configure throughput for Azure Cosmos DB by using the Azure portal

Implement client connectivity options in the Azure Cosmos DB SDK

  • Choose a connectivity mode (gateway versus direct)

  • Implement a connectivity mode

  • Create a connection to a database

  • Enable offline development by using the Azure Cosmos DB emulator

  • Handle connection errors

  • Implement a singleton for the client

  • Specify a region for global distribution

  • Configure client-side threading and parallelism options

  • Enable SDK logging

Implement data access by using the SQL language for Azure Cosmos DB for NoSQL

  • Implement queries that use arrays, nested objects, aggregation, and ordering

  • Implement a correlated subquery

  • Implement queries that use array and type-checking functions

  • Implement queries that use mathematical, string, and date functions

  • Implement queries based on variable data

Implement data access by using Azure Cosmos DB for NoSQL SDKs

  • Choose when to use a point operation versus a query operation

  • Implement a point operation that creates, updates, and deletes documents

  • Implement an update by using a patch operation

  • Manage multi-document transactions using SDK Transactional Batch

  • Perform a multi-document load using Bulk Support in the SDK

  • Implement optimistic concurrency control using ETags

  • Override default consistency by using query request options

  • Implement session consistency by using session tokens

  • Implement a query operation that includes pagination

  • Implement a query operation by using a continuation token

  • Handle transient errors and 429s

  • Specify TTL for a document

  • Retrieve and use query metrics

Implement server-side programming in Azure Cosmos DB for NoSQL by using JavaScript

  • Write, deploy, and call a stored procedure

  • Design stored procedures to work with multiple documents transactionally

  • Implement and call triggers

  • Implement a user-defined function

Design and implement data distribution (5–10%)

Design and implement a replication strategy for Azure Cosmos DB

  • Choose when to distribute data

  • Define automatic failover policies for regional failure for Azure Cosmos DB for NoSQL

  • Perform manual failovers to move single master write regions

  • Choose a consistency model

  • Identify use cases for different consistency models

  • Evaluate the impact of consistency model choices on availability and associated request unit (RU) cost

  • Evaluate the impact of consistency model choices on performance and latency

  • Specify application connections to replicated data

Design and implement multi-region write

  • Choose when to use multi-region write

  • Implement multi-region write

  • Implement a custom conflict resolution policy for Azure Cosmos DB for NoSQL

Integrate an Azure Cosmos DB solution (5–10%)

Enable Azure Cosmos DB analytical workloads

  • Enable Azure Synapse Link

  • Choose between Azure Synapse Link and Spark Connector

  • Enable the analytical store on a container

  • Implement custom partitioning in Azure Synapse Link

  • Enable a connection to an analytical store and query from Azure Synapse Spark or Azure Synapse SQL

  • Perform a query against the transactional store from Spark

  • Write data back to the transactional store from Spark

  • Implement Change Data Capture in the Azure Cosmos DB analytical store

  • Implement time travel in Azure Synapse Link for Azure Cosmos DB

Implement solutions across services

  • Integrate events with other applications by using Azure Functions and Azure Event Hubs

  • Denormalize data by using Change Feed and Azure Functions

  • Enforce referential integrity by using Change Feed and Azure Functions

  • Aggregate data by using Change Feed and Azure Functions, including reporting

  • Archive data by using Change Feed and Azure Functions

  • Implement Azure AI Search for an Azure Cosmos DB solution

Optimize an Azure Cosmos DB solution (15–20%)

Optimize query performance when using the API for Azure Cosmos DB for NoSQL

  • Adjust indexes on the database

  • Calculate the cost of the query

  • Retrieve request unit cost of a point operation or query

  • Implement Azure Cosmos DB integrated cache

Design and implement change feeds for Azure Cosmos DB for NoSQL

  • Develop an Azure Functions trigger to process a change feed

  • Consume a change feed from within an application by using the SDK

  • Manage the number of change feed instances by using the change feed estimator

  • Implement denormalization by using a change feed

  • Implement referential enforcement by using a change feed

  • Implement aggregation persistence by using a change feed

  • Implement data archiving by using a change feed

Define and implement an indexing strategy for Azure Cosmos DB for NoSQL

  • Choose when to use a read-heavy versus write-heavy index strategy

  • Choose an appropriate index type

  • Configure a custom indexing policy by using the Azure portal

  • Implement a composite index

  • Optimize index performance

Maintain an Azure Cosmos DB solution (25–30%)

Monitor and troubleshoot an Azure Cosmos DB solution

  • Evaluate response status code and failure metrics

  • Monitor metrics for normalized throughput usage by using Azure Monitor

  • Monitor server-side latency metrics by using Azure Monitor

  • Monitor data replication in relation to latency and availability

  • Configure Azure Monitor alerts for Azure Cosmos DB

  • Implement and query Azure Cosmos DB logs

  • Monitor throughput across partitions

  • Monitor distribution of data across partitions

  • Monitor security by using logging and auditing

Implement backup and restore for an Azure Cosmos DB solution

  • Choose between periodic and continuous backup

  • Configure periodic backup

  • Configure continuous backup and recovery

  • Locate a recovery point for a point-in-time recovery

  • Recover a database or container from a recovery point

Implement security for an Azure Cosmos DB solution

  • Choose between service-managed and customer-managed encryption keys

  • Configure network-level access control for Azure Cosmos DB

  • Configure data encryption for Azure Cosmos DB

  • Manage control plane access to Azure Cosmos DB by using Azure role-based access control (RBAC)

  • Manage data plane access to Azure Cosmos DB by using keys

  • Manage data plane access to Azure Cosmos DB by using Microsoft Entra ID

  • Configure cross-origin resource sharing (CORS) settings

  • Manage account keys by using Azure Key Vault

  • Implement customer-managed keys for encryption

  • Implement Always Encrypted

Implement data movement for an Azure Cosmos DB solution

  • Choose a data movement strategy

  • Move data by using client SDK bulk operations

  • Move data by using Azure Data Factory and Azure Synapse pipelines

  • Move data by using a Kafka connector

  • Move data by using Azure Stream Analytics

  • Move data by using the Azure Cosmos DB Spark Connector

  • Configure Azure Cosmos DB as a custom endpoint for an Azure IoT Hub

Implement a DevOps process for an Azure Cosmos DB solution

  • Choose when to use declarative versus imperative operations

  • Provision and manage Azure Cosmos DB resources by using Azure Resource Manager templates

  • Migrate between standard and autoscale throughput by using PowerShell or Azure CLI

  • Initiate a regional failover by using PowerShell or Azure CLI

  • Maintain indexing policies in production by using Azure Resource Manager templates

Study resources

We recommend that you train and get hands-on experience before you take the exam. We offer self-study options and classroom training as well as links to documentation, community sites, and videos.

Study resources Links to learning and documentation
Get trained Choose from self-paced learning paths and modules or take an instructor-led course
Find documentation Azure Cosmos DB documentation
Azure documentation
Ask a question Microsoft Q&A | Microsoft Docs
Get community support Analytics on Azure - Microsoft Tech Community
Azure Data Factory - Microsoft Tech Community
Azure - Microsoft Tech Community
Follow Microsoft Learn Microsoft Learn - Microsoft Tech Community
Find a video Exam Readiness Zone
Data Exposed
Browse other Microsoft Learn shows

Change log

Key to understanding the table: The topic groups (also known as functional groups) are in bold typeface followed by the objectives within each group. The table is a comparison between the two versions of the exam skills measured and the third column describes the extent of the changes.

Skill area prior to April 24, 2024 Skill area prior to April 24, 2024 Change
Audience profile No change
Design and implement data models Design and implement data models No change
Design and implement a non-relational data model for Azure Cosmos DB for NoSQL Design and implement a non-relational data model for Azure Cosmos DB for NoSQL No change
Design a data partitioning strategy for Azure Cosmos DB for NoSQL Design a data partitioning strategy for Azure Cosmos DB for NoSQL No change
Plan and implement sizing and scaling for a database created with Azure Cosmos DB Plan and implement sizing and scaling for a database created with Azure Cosmos DB No change
Implement client connectivity options in the Azure Cosmos DB SDK Implement client connectivity options in the Azure Cosmos DB SDK No change
Implement data access by using the SQL language for Azure Cosmos DB for NoSQL Implement data access by using the SQL language for Azure Cosmos DB for NoSQL No change
Implement data access by using Azure Cosmos DB for NoSQL SDKs Implement data access by using Azure Cosmos DB for NoSQL SDKs No change
Implement server-side programming in Azure Cosmos DB for NoSQL by using JavaScript Implement server-side programming in Azure Cosmos DB for NoSQL by using JavaScript No change
Design and implement data distribution Design and implement data distribution No change
Design and implement a replication strategy for Azure Cosmos DB Design and implement a replication strategy for Azure Cosmos DB No change
Design and implement multi-region write Design and implement multi-region write No change
Integrate an Azure Cosmos DB solution Integrate an Azure Cosmos DB solution No change
Enable Azure Cosmos DB analytical workloads Enable Azure Cosmos DB analytical workloads Major
Implement solutions across services Implement solutions across services Minor
Optimize an Azure Cosmos DB solution Optimize an Azure Cosmos DB solution No change
Optimize query performance when using the API for Azure Cosmos DB for NoSQL Optimize query performance when using the API for Azure Cosmos DB for NoSQL No change
Design and implement change feeds for Azure Cosmos DB for NoSQL Design and implement change feeds for Azure Cosmos DB for NoSQL No change
Define and implement an indexing strategy for Azure Cosmos DB for NoSQL Define and implement an indexing strategy for Azure Cosmos DB for NoSQL No change
Maintain an Azure Cosmos DB solution Maintain an Azure Cosmos DB solution No change
Monitor and troubleshoot an Azure Cosmos DB solution Monitor and troubleshoot an Azure Cosmos DB solution No change
Implement backup and restore for an Azure Cosmos DB solution Implement backup and restore for an Azure Cosmos DB solution No change
Implement security for an Azure Cosmos DB solution Implement security for an Azure Cosmos DB solution No change
Implement data movement for an Azure Cosmos DB solution Implement data movement for an Azure Cosmos DB solution No change
Implement a DevOps process for an Azure Cosmos DB solution Implement a DevOps process for an Azure Cosmos DB solution No change

Skills measured prior to April 24, 2024

Audience profile

As a candidate for this exam, you should have subject matter expertise designing, implementing, and monitoring cloud-native applications that store and manage data.

Your responsibilities for this role include:

  • Designing and implementing data models and data distribution.

  • Loading data into an Azure Cosmos DB database.

  • Optimizing and maintaining the solution.

As a professional in this role, you integrate the solution with other Azure services. You also design, implement, and monitor solutions that consider security, availability, resilience, and performance requirements.

As a candidate for this exam, you must have solid knowledge and experience with:

  • Developing apps for Azure.

  • Working with Azure Cosmos DB database technologies.

  • Creating server-side objects with JavaScript.

You should be proficient at developing applications that use the Azure Cosmos DB for NoSQL API. You should be able to:

  • Write efficient SQL queries for the API.

  • Create appropriate indexing policies.

  • Interpret JSON.

  • Read C# or Java code.

  • Use PowerShell.

Additionally, you should be familiar with provisioning and managing resources in Azure.

Skills at a glance

  • Design and implement data models (35–40%)

  • Design and implement data distribution (5–10%)

  • Integrate an Azure Cosmos DB solution (5–10%)

  • Optimize an Azure Cosmos DB solution (15–20%)

  • Maintain an Azure Cosmos DB solution (25–30%)

Design and implement data models (35–40%)

Design and implement a non-relational data model for Azure Cosmos DB for NoSQL

  • Develop a design by storing multiple entity types in the same container

  • Develop a design by storing multiple related entities in the same document

  • Develop a model that denormalizes data across documents

  • Develop a design by referencing between documents

  • Identify primary and unique keys

  • Identify data and associated access patterns

  • Specify a default time to live (TTL) on a container for a transactional store

Design a data partitioning strategy for Azure Cosmos DB for NoSQL

  • Choose a partitioning strategy based on a specific workload

  • Choose a partition key

  • Plan for transactions when choosing a partition key

  • Evaluate the cost of using a cross-partition query

  • Calculate and evaluate data distribution based on partition key selection

  • Calculate and evaluate throughput distribution based on partition key selection

  • Construct and implement a synthetic partition key

  • Design and implement a hierarchical partition key

  • Design partitioning for workloads that require multiple partition keys

Plan and implement sizing and scaling for a database created with Azure Cosmos DB

  • Evaluate the throughput and data storage requirements for a specific workload

  • Choose between serverless and provisioned models

  • Choose when to use database-level provisioned throughput

  • Design for granular scale units and resource governance

  • Evaluate the cost of the global distribution of data

  • Configure throughput for Azure Cosmos DB by using the Azure portal

Implement client connectivity options in the Azure Cosmos DB SDK

  • Choose a connectivity mode (gateway versus direct)

  • Implement a connectivity mode

  • Create a connection to a database

  • Enable offline development by using the Azure Cosmos DB emulator

  • Handle connection errors

  • Implement a singleton for the client

  • Specify a region for global distribution

  • Configure client-side threading and parallelism options

  • Enable SDK logging

Implement data access by using the SQL language for Azure Cosmos DB for NoSQL

  • Implement queries that use arrays, nested objects, aggregation, and ordering

  • Implement a correlated subquery

  • Implement queries that use array and type-checking functions

  • Implement queries that use mathematical, string, and date functions

  • Implement queries based on variable data

Implement data access by using Azure Cosmos DB for NoSQL SDKs

  • Choose when to use a point operation versus a query operation

  • Implement a point operation that creates, updates, and deletes documents

  • Implement an update by using a patch operation

  • Manage multi-document transactions using SDK Transactional Batch

  • Perform a multi-document load using Bulk Support in the SDK

  • Implement optimistic concurrency control using ETags

  • Override default consistency by using query request options

  • Implement session consistency by using session tokens

  • Implement a query operation that includes pagination

  • Implement a query operation by using a continuation token

  • Handle transient errors and 429s

  • Specify TTL for a document

  • Retrieve and use query metrics

Implement server-side programming in Azure Cosmos DB for NoSQL by using JavaScript

  • Write, deploy, and call a stored procedure

  • Design stored procedures to work with multiple documents transactionally

  • Implement and call triggers

  • Implement a user-defined function

Design and implement data distribution (5–10%)

Design and implement a replication strategy for Azure Cosmos DB

  • Choose when to distribute data

  • Define automatic failover policies for regional failure for Azure Cosmos DB for NoSQL

  • Perform manual failovers to move single master write regions

  • Choose a consistency model

  • Identify use cases for different consistency models

  • Evaluate the impact of consistency model choices on availability and associated request unit (RU) cost

  • Evaluate the impact of consistency model choices on performance and latency

  • Specify application connections to replicated data

Design and implement multi-region write

  • Choose when to use multi-region write

  • Implement multi-region write

  • Implement a custom conflict resolution policy for Azure Cosmos DB for NoSQL

Integrate an Azure Cosmos DB solution (5–10%)

Enable Azure Cosmos DB analytical workloads

  • Enable Azure Synapse Link

  • Choose between Azure Synapse Link and Spark Connector

  • Enable the analytical store on a container

  • Implement custom partitioning in Azure Synapse Link

  • Enable a connection to an analytical store and query from Azure Synapse Spark or Azure Synapse SQL

  • Perform a query against the transactional store from Spark

  • Write data back to the transactional store from Spark

Implement solutions across services

  • Integrate events with other applications by using Azure Functions and Azure Event Hubs

  • Denormalize data by using Change Feed and Azure Functions

  • Enforce referential integrity by using Change Feed and Azure Functions

  • Aggregate data by using Change Feed and Azure Functions, including reporting

  • Archive data by using Change Feed and Azure Functions

  • Implement Azure Cognitive Search for an Azure Cosmos DB solution

Optimize an Azure Cosmos DB solution (15–20%)

Optimize query performance when using the API for Azure Cosmos DB for NoSQL

  • Adjust indexes on the database

  • Calculate the cost of the query

  • Retrieve request unit cost of a point operation or query

  • Implement Azure Cosmos DB integrated cache

Design and implement change feeds for Azure Cosmos DB for NoSQL

  • Develop an Azure Functions trigger to process a change feed

  • Consume a change feed from within an application by using the SDK

  • Manage the number of change feed instances by using the change feed estimator

  • Implement denormalization by using a change feed

  • Implement referential enforcement by using a change feed

  • Implement aggregation persistence by using a change feed

  • Implement data archiving by using a change feed

Define and implement an indexing strategy for Azure Cosmos DB for NoSQL

  • Choose when to use a read-heavy versus write-heavy index strategy

  • Choose an appropriate index type

  • Configure a custom indexing policy by using the Azure portal

  • Implement a composite index

  • Optimize index performance

Maintain an Azure Cosmos DB solution (25–30%)

Monitor and troubleshoot an Azure Cosmos DB solution

  • Evaluate response status code and failure metrics

  • Monitor metrics for normalized throughput usage by using Azure Monitor

  • Monitor server-side latency metrics by using Azure Monitor

  • Monitor data replication in relation to latency and availability

  • Configure Azure Monitor alerts for Azure Cosmos DB

  • Implement and query Azure Cosmos DB logs

  • Monitor throughput across partitions

  • Monitor distribution of data across partitions

  • Monitor security by using logging and auditing

Implement backup and restore for an Azure Cosmos DB solution

  • Choose between periodic and continuous backup

  • Configure periodic backup

  • Configure continuous backup and recovery

  • Locate a recovery point for a point-in-time recovery

  • Recover a database or container from a recovery point

Implement security for an Azure Cosmos DB solution

  • Choose between service-managed and customer-managed encryption keys

  • Configure network-level access control for Azure Cosmos DB

  • Configure data encryption for Azure Cosmos DB

  • Manage control plane access to Azure Cosmos DB by using Azure role-based access control (RBAC)

  • Manage data plane access to Azure Cosmos DB by using keys

  • Manage data plane access to Azure Cosmos DB by using Microsoft Entra ID

  • Configure cross-origin resource sharing (CORS) settings

  • Manage account keys by using Azure Key Vault

  • Implement customer-managed keys for encryption

  • Implement Always Encrypted

Implement data movement for an Azure Cosmos DB solution

  • Choose a data movement strategy

  • Move data by using client SDK bulk operations

  • Move data by using Azure Data Factory and Azure Synapse pipelines

  • Move data by using a Kafka connector

  • Move data by using Azure Stream Analytics

  • Move data by using the Azure Cosmos DB Spark Connector

  • Configure Azure Cosmos DB as a custom endpoint for an Azure IoT Hub

Implement a DevOps process for an Azure Cosmos DB solution

  • Choose when to use declarative versus imperative operations

  • Provision and manage Azure Cosmos DB resources by using Azure Resource Manager templates

  • Migrate between standard and autoscale throughput by using PowerShell or Azure CLI

  • Initiate a regional failover by using PowerShell or Azure CLI

  • Maintain indexing policies in production by using Azure Resource Manager templates