Courseiva

AZ-305 Design data storage solutions Practice Question

Which THREE of the following are best practices for designing a data storage solution using Azure Cosmos DB?

⚠ Common exam trap

It's easy for candidates to assume manual throughput is always more cost-effective, but Azure Cosmos DB's autoscale is designed to handle unpredictable workloads without the risk of throttling or over-provisioning, making it a best practice for such scenarios.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

Use the appropriate consistency level based on application requirements

Azure Cosmos DB offers five well-defined consistency levels (strong, bounded staleness, session, consistent prefix, and eventual). Choosing the appropriate level based on application requirements is a best practice, as it balances data consistency guarantees against latency and throughput. For example, session consistency is ideal for multi-user applications where each user reads their own writes, while strong consistency ensures linearizability but reduces availability and increases latency.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Store large binary data (e.g., images) directly as documents

    Why it's wrong here

    Storing large binary data such as images directly as Azure Cosmos DB documents is a common anti-pattern because each document has a hard 2 MB size limit, and any binary payload inflates RU consumption during writes and queries. The recommended pattern is to store binaries in Azure Blob Storage and maintain only a reference URL or metadata in Cosmos DB, keeping documents small and operation costs predictable.

  • ✓

    Use the appropriate consistency level based on application requirements

    Why this is correct

    Choosing the appropriate consistency level for each application requirement is a core Cosmos DB design practice because consistency directly impacts throughput and latency. Strong consistency requires more RUs and may have higher latency across regions, while session, eventual, or bounded staleness can reduce cost and improve performance. This decision must be made deliberately: banking transactions need strong consistency, while IoT telemetry or product catalog reads can tolerate eventual consistency to save resources.

  • ✓

    Choose a partition key that evenly distributes request units (RU) across partitions

    Why this is correct

    Selecting a partition key that provides even RU distribution is essential to avoid hot partitions where one logical partition receives a disproportionate share of traffic. Each logical partition has a 20 GB storage cap and all requests for a partition are served by a single physical partition, so a skewed key like status or region can throttle workloads. A proper key such as device ID, customer ID, or order ID spreads reads and writes across many logical partitions and maximizes aggregate throughput.

  • ✓

    Enable autoscale on containers with unpredictable traffic patterns

    Why this is correct

    Enabling autoscale on containers with unpredictable traffic patterns is a best practice because it allows Cosmos DB to automatically scale RU/s to the maximum required, avoiding manual provisioning errors and throttling (HTTP 429). Autoscale scales instantly within a range from 10% to 100% of the maximum RU/s, so you only pay for the capacity consumed intra-hour, making it cost-efficient for spiky workloads. For steady, predictable workloads manual throughput is often cheaper, but for variability autoscale prevents both over- and under-provisioning.

  • ✗

    Use manual provisioned throughput for all containers to control costs

    Why it's wrong here

    Using manual provisioned throughput for all containers is not a best practice because it forces you to guess capacity: fixed RU/s causes throttling during spikes and wasted cost during idle periods. Manual throughput suits applications with stable, predictable demand, but for variable or unknown patterns autoscale automatically adjusts RU/s, maintains performance, and lowers overall cost. Additionally, manual provisioning across many containers requires continuous monitoring to update assigned RUs, which is operationally inefficient.

About these practice questions

This AZ-305 question is part of Courseiva's 795-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This AZ-305 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the AZ-305 exam.