Skip to article
Databases Data platform

Conflict resolution

the way Azure Cosmos DB decides the winning version when concurrent writes from multiple regions change the same item or logical record

Source: Microsoft Learn - Conflict resolution types and resolution policies Reviewed 2026-05-12

Exam trap
Assuming last-writer-wins matches business rules for every item.
Production check
Confirm owner, scope, resource IDs, region, tags, and environment before accepting the current state.
Article details and learning context
Aliases
None listed
Difficulty
intermediate
CLI mappings
6
Last verified
2026-05-12

Understand the concept

In plain English

Conflict resolution means the way Azure Cosmos DB decides the winning version when concurrent writes from multiple regions change the same item or logical record. Teams use it to run multi-region write applications, preserve data correctness, design merge behavior, and explain what happens when simultaneous updates collide. In Azure work, operators usually see it in portal settings, deployment output, metrics, logs, API responses, and runbooks. The practical question is who owns it, what scope it affects, and what evidence proves it is working.

Why it matters

Conflict resolution matters because multi-region writes can overwrite important changes, produce confusing user outcomes, or hide business conflicts if teams assume the platform understands application intent. The business impact is rarely abstract: users see slower workflows, blocked access, missing data, failed automation, audit gaps, support delays, or unexpected cost when the term is misunderstood. A strong glossary entry gives architects, developers, security reviewers, and operators the same language for design reviews and incident handoffs. It connects Azure configuration to measurable objectives, ownership, rollback paths, and evidence, so teams treat it as an operational control rather than a portal label. That discipline helps teams make safer changes under pressure.

Official wording and source

Conflict resolution is the process Azure Cosmos DB uses to resolve write conflicts that can occur when an account is configured with multiple write regions.

Open Microsoft Learn

Technical context

Technically, Conflict resolution is a Cosmos DB multi-write behavior involving detected conflicts, conflict feed records, last-writer-wins resolution, custom resolution logic, and application consistency expectations. Engineers verify it with resource IDs, configuration, logs, metrics, request records, and deployment evidence. Important configuration includes multi-region writes, consistency level, partition key, container policy, custom conflict procedure, client region preference, retry strategy, and monitoring alerts. Production reviews should capture owner, scope, region, identity, limits, recent changes, and diagnostics before changing behavior.

Exam context

Compare with

Where it is used

Where you see it

  1. You see Conflict resolution in Cosmos DB multi-region writes, conflict feeds, SDK code, and diagnostics when confirming write conflicts, winner selection, timestamps, and application merge behavior for release, audit, or incident evidence.
  2. You see Conflict resolution during troubleshooting when different regions accept competing updates for the same item and operators must connect portal state, CLI output, logs, metrics, owners, and rollback notes.
  3. You see Conflict resolution in architecture reviews when teams decide how concurrent writes are resolved across replicas, how evidence is gathered, and how it affects security, reliability, operations, cost, and performance.

Common situations

  • Decide how application data is stored, indexed, scaled, cached, and protected.
  • Troubleshoot connection failures, throughput pressure, indexing, backup, or regional availability.
  • Explain why one database capability changes cost, latency, consistency, or recovery behavior.
  • Prepare production changes with source, identity, network, and command context visible.

Illustrative Azure scenarios

These examples show how the concept can affect design and operations. They are illustrative scenarios, not customer claims.

Scenario 01 Retail inventory merge Scenario, objectives, solution, measured impact, and takeaway.
Scenario

Coho Outfitters enabled regional store applications to update inventory locally, but simultaneous stock adjustments created confusing counts.

Goals
  • Support writes from three regions
  • Keep inventory corrections auditable
  • Reduce lost stock adjustments by 90 percent
  • Reconcile conflicts within fifteen minutes
Approach using Conflict resolution

Architects reviewed Cosmos DB conflict resolution before expanding multi-region writes. They separated inventory events from current stock snapshots, then used conflict handling to preserve adjustment records while a reconciliation Function calculated the current count. Conflict feed evidence, item timestamps, and SDK diagnostics were stored for operations. The team tested concurrent writes from each region and added alerts for conflict spikes by partition key. Store managers received a dashboard showing reconciled quantity, pending conflicts, and correction reason. The runbook captured owner, environment, approval link, rollback condition, and the exact Azure evidence operators had to collect before and after each change. A dashboard tracked adoption, exceptions, and operational signals so support, security, and finance teams could review outcomes without relying on informal notes. The team reviewed results after the pilot and kept the design in the standard platform checklist for future deployments.

Potential outcomes
  • Lost stock adjustments dropped 94 percent
  • Regional writes continued during simulated failover
  • Conflict reconciliation averaged six minutes
  • Auditors could trace every correction to source events
What to learn

Conflict resolution should protect business meaning, not just choose the newest document.

Scenario 02 Gaming profile updates Scenario, objectives, solution, measured impact, and takeaway.
Scenario

Lucerne Games stored player profiles across regions, but profile edits and reward updates sometimes arrived at the same time.

Goals
  • Allow low-latency profile writes globally
  • Prevent reward balances from being overwritten
  • Keep conflict handling transparent to support
  • Limit added RU consumption during events
Approach using Conflict resolution

The engineering team analyzed conflict resolution behavior for profile containers and split mutable balances into event-based records. Profile preferences used platform resolution, while rewards used idempotent events processed into a balance projection. Application Insights captured client region, request charge, retries, and conflict counts. A support tool displayed the winning profile version and related reward events without exposing raw account secrets. Load tests simulated tournament traffic before multi-region writes were expanded. The runbook captured owner, environment, approval link, rollback condition, and the exact Azure evidence operators had to collect before and after each change. A dashboard tracked adoption, exceptions, and operational signals so support, security, and finance teams could review outcomes without relying on informal notes. The team reviewed results after the pilot and kept the design in the standard platform checklist for future deployments.

Potential outcomes
  • Reward overwrite incidents were eliminated
  • Profile write latency improved 38 percent for Asia players
  • Conflict-related tickets fell 61 percent
  • RU spikes stayed within the approved tournament budget
What to learn

Conflict resolution works best when data modeling separates harmless preferences from business-critical counters.

Scenario 03 Field service offline sync Scenario, objectives, solution, measured impact, and takeaway.
Scenario

Datum Field Services had technicians updating job notes offline, then syncing from different regions when connectivity returned.

Goals
  • Preserve technician notes from concurrent edits
  • Resolve conflicts before billing closure
  • Give dispatchers clear correction evidence
  • Keep sync delays under one hour
Approach using Conflict resolution

Architects moved job notes into append-only child records and used Cosmos DB conflict resolution only for small job-status fields. When a conflict appeared, a Function created a dispatcher task with both versions, timestamps, and technician IDs. The mobile client included region and device metadata in writes, making diagnostics useful during disputes. Azure Monitor alerts watched conflict counts after large storm-response deployments, and runbooks explained when to pause billing closure until reconciliation finished. The runbook captured owner, environment, approval link, rollback condition, and the exact Azure evidence operators had to collect before and after each change. A dashboard tracked adoption, exceptions, and operational signals so support, security, and finance teams could review outcomes without relying on informal notes. The team reviewed results after the pilot and kept the design in the standard platform checklist for future deployments.

Potential outcomes
  • No technician notes were lost after redesign
  • Billing holds caused by conflicts fell 52 percent
  • Dispatcher reconciliation averaged twenty-eight minutes
  • Storm-response sync stayed within the one-hour target
What to learn

Conflict resolution is safer when collaboration-heavy data keeps enough history for people to resolve intent.

Azure CLI

Use CLI checks to verify write regions, account settings, container policy, throughput, and diagnostics before changing conflict resolution behavior.

Useful for

  • Show the Cosmos DB account regions and multi-write configuration.
  • Inspect container settings that influence conflict resolution behavior.
  • Collect metrics and diagnostics when conflicts increase after regional rollout.

Before you run a command

  • Confirm the active tenant, subscription, resource group, workspace, account, or region before running commands.
  • Use least-privileged access and avoid storing secrets, tokens, prompts, connection strings, or personal data in command output.
  • Know whether the command is read-only, mutating, cost-impacting, security-impacting, or destructive before production use.

What the output tells you

  • Output confirms whether the live Azure configuration exists at the expected scope and matches the approved design.
  • Returned IDs, settings, metrics, timestamps, or logs help separate configuration drift from application behavior.
  • Differences between expected and actual state create evidence for rollback, escalation, audit, or owner follow-up.

Mapped commands

Cosmosdb operations

direct
az cosmosdb list --resource-group <resource-group>
az cosmosdbdiscoverDatabases
az cosmosdb show --name <account-name> --resource-group <resource-group>
az cosmosdbdiscoverDatabases
az cosmosdb create --name <account-name> --resource-group <resource-group> --locations regionName=<region>
az cosmosdbprovisionDatabases
az cosmosdb sql database list --account-name <account-name> --resource-group <resource-group>
az cosmosdb sql databasediscoverDatabases
az cosmosdb sql container list --account-name <account-name> --database-name <database-name> --resource-group <resource-group>
az cosmosdb sql containerdiscoverDatabases
az cosmosdb delete --name <account-name> --resource-group <resource-group>
az cosmosdbremoveDatabases

Architecture context

Technically, Conflict resolution is a Cosmos DB multi-write behavior involving detected conflicts, conflict feed records, last-writer-wins resolution, custom resolution logic, and application consistency expectations. Engineers verify it with resource IDs, configuration, logs, metrics, request records, and deployment evidence. Important configuration includes multi-region writes, consistency level, partition key, container policy, custom conflict procedure, client region preference, retry strategy, and monitoring alerts. Production reviews should capture owner, scope, region, identity, limits, recent changes, and diagnostics before changing behavior.

Security
Security for Conflict resolution starts with understanding who can enable multi-region writes, alter containers, run custom resolution logic, inspect conflict data, access diagnostics, and change application merge behavior. Review identities, roles, secrets, network paths, data classification, logs, and who can change the setting. Prefer least privilege, private access when available, managed identity or protected credentials, and audit evidence. Watch for broad permissions, sensitive data in logs, shared keys, public endpoints, stale owners, and exceptions without expiry. Production use should include an approved owner, access boundary, alert routing, and a revocation process operators can execute during an incident. Security reviewers should tie every exception to risk acceptance and expiry.
Cost
Cost for Conflict resolution comes from multi-region write charges, RU consumption, conflict processing, retries, diagnostics, custom reconciliation jobs, and duplicate work caused by poorly designed merge logic. Direct costs may be obvious, but indirect costs can appear as retries, duplicate processing, idle capacity, failed deployments, excessive logs, data movement, investigation time, or support effort. Review budgets, tags, usage metrics, quota, retention, SKU, and forecasts before enabling or scaling it. Connect spend to business-unit ownership and expected workload value. Define normal usage, alert thresholds, cleanup rules, and exception approval before the feature becomes a hidden default across environments. Finance teams need evidence that the cost aligns to real demand, not leftover experiments.
Reliability
Reliability for Conflict resolution depends on regional write availability, client region selection, consistency level, retry behavior, conflict detection, replay handling, and business reconciliation when automatic resolution is insufficient. Operators should know the expected failure mode, dependency chain, recovery target, and whether retries, failover, reprocessing, reauthentication, or manual approval are required. Monitor health, latency, quota, backlog, error rates, stale state, and downstream failures. Test behavior during maintenance, regional incidents, expired credentials, schema changes, policy changes, and burst traffic. Runbooks should explain how to validate current state, preserve evidence, reduce blast radius, and restore service without duplicate work or data loss. Reliability reviews should include the human handoff path, not only platform health.
Performance
Performance for Conflict resolution is about write latency, RU pressure, replication delay, conflict frequency, partition hot spots, client retry behavior, and custom resolution procedure execution. Measure signals that reflect user or workload experience, such as latency, throughput, request units, connection counts, response time, queue depth, cache behavior, or throttled operations. Avoid tuning one setting in isolation when identity, network path, partitioning, model size, region, client behavior, or downstream capacity may be the real bottleneck. Compare baseline and peak results after changes, then document which limit would be reached first as demand grows. Keep tests close to production patterns. That evidence helps teams scale intentionally instead of guessing during incidents.
Operations
Operationally, Conflict resolution needs clear ownership, naming, tagging, change records, and repeatable verification. Teams should know where it appears, which commands or queries prove state, which dashboard shows health, and what is safe to change during business hours. Keep examples, approvals, rollback notes, and exception records with the service runbook rather than personal notes. For production changes, capture before-and-after evidence, including resource IDs, region, tenant, policy assignment, deployment version, and linked services. Review stale resources and permissions regularly. Escalation contacts should stay current as teams reorganize. This prevents tribal knowledge from becoming the only support path. It also helps new operators support the service with confidence.

Common mistakes

  • Assuming last-writer-wins matches business rules for every item.
  • Enabling multi-region writes without testing concurrent updates.
  • Ignoring partition design and retries when conflict rates rise.