← AZ-204: Azure development, historical path
AZ-204 retired July 31, 2026. Independent historical content without Microsoft affiliation, accreditation, or certification award. Microsoft and Azure are trademarks of their respective owners. Fictional scenarios do not represent internal banking procedures.
03 / 6 · 25 MIN

Data, concurrency, and history

Protect updates and distinguish current state from complete history.

Concept and mechanism

A read followed by a write can lose another process’s change. ETag conditions detect that state changed before content replacement. A 412 should lead to rereading and conflict resolution, not automatic removal of protection. In Cosmos DB, a stored procedure operates transactionally within a logical partition; sharing a region or container does not extend that boundary. For blobs, a lease can coordinate writing without being a general confidentiality control for reading.

Guided application

Also design what consumers need to observe. Latest version change feed does not represent every intermediate version or physical deletion. If the business needs complete history, choose a compatible mechanism and confirm requirements, retention, and delete handling. Lifecycle policies change tiers or expire data according to rules and periodic execution; they are neither backups nor promises of instant completion. Before a change, confirm consumers, approved retention, and how to recover from an incorrect decision.

IN PRACTICE

Two operators correct the same file. The second receives 412, rereads, and consolidates both changes instead of overwriting the first.

Common pitfalls

Confusing region with transaction boundary; using latest version as a complete audit log; removing If-Match to meet a deadline.

Related topics: Identity, tokens, and authorization · Telemetry and request diagnosis

Take this idea with you

Explicitly choose concurrency, observation, and retention guarantees.

Create account

Reference: Cosmos DB transactions and concurrency · AZ-204 archived objectives 2026-01-14; retired 2026-07-31