Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To prevent one client from overwriting another client’s newer status change, make each update conditional on the version the client originally read. For an HTTP API, return an ETag and require that tag in the update’s If-Match header. At the database layer, compare the expected version and apply the change in one atomic conditional write. If the comparison fails, report a conflict rather than applying stale data.

How compare-and-swap prevents lost updates

A lost update happens when two clients read the same status, then each submits a change based on that older state. If the server accepts both writes unconditionally, the later one can silently overwrite the earlier one.

Compare-and-swap avoids that race by treating the version a client observed as an expectation: apply the requested change only if the current version still matches it. The comparison and mutation must happen together. A separate read, comparison in application code, and later unconditional write leaves time for another update to slip in. The IETF describes HTTP’s If-Match condition as a way to prevent accidental overwrites in this situation (RFC 9110, Section 13.1.1).

Implement it with HTTP ETags and If-Match

  1. Return a validator with the resource. When the client reads a status resource, return its representation and an ETag that changes when the relevant representation changes.
  2. Require the observed ETag on updates. The client sends its intended change with If-Match set to the ETag it received.
  3. Check the condition before applying the method. RFC 9110 requires strong comparison for If-Match and says the method must not be performed when the condition is false. Do not use a weak ETag for this concurrency check.
  4. Return the new representation and validator on success. If the condition fails, respond with 412 Precondition Failed, a standard response for an unmet HTTP precondition. The response can include current state or direct the client to fetch it.

This illustrative exchange shows the protocol shape, not tested application code:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
GET /items/42
HTTP/1.1 200 OK
ETag: "v17"
Content-Type: application/json

{"status":"pending"}
PATCH /items/42
If-Match: "v17"
Content-Type: application/json

{"status":"approved"}

If another update changes the selected representation before the PATCH is evaluated, the server rejects this request without applying it. The client should reload the resource and decide what its intended change means against the newer state.

Implement it with an atomic database version check

For a versioned row, compare the expected version in the update predicate and increment the stored version in that same write:

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
UPDATE items
SET status = :new_status,
    version = version + 1
WHERE id = :id
  AND version = :expected_version;

This is generic SQL pseudocode; exact syntax and transaction behavior depend on the database. Inspect the affected-row count: one row means the expected version matched and the update was applied; zero rows means the record is missing or its version changed. Handle the latter as a conflict, while distinguishing a missing resource according to the API’s information-disclosure policy.

In DynamoDB, the analogous pattern uses a ConditionExpression, such as Version = :expected_v. A failed condition produces ConditionalCheckFailedException. AWS describes optimistic locking as detecting conflicts at write time rather than preventing them (DynamoDB Developer Guide).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Handle conflicts without replaying stale data

A failed comparison is not a successful update. The client should fetch the latest state and then choose an appropriate resolution:

  • Show the conflict and let the user decide which status or action is intended.
  • Merge or recompute an intent-based change using the fresh state, if the operation’s meaning is clear.
  • Retry a bounded number of times only when the operation can be safely recomputed. AWS advises limiting retries because each retry adds a read (DynamoDB optimistic locking guidance).

Do not blindly replay a stale whole-record replacement. Keep the server authoritative for both current status and version: a client-provided version is an expectation, not permission to bypass validation. Independently validate that the requested transition is allowed; compare-and-swap prevents stale overwrites but does not enforce business rules about valid status transitions. Also distinguish version conflicts from authorization failures, invalid requests, missing resources, and infrastructure errors.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choose the concurrency strategy for the work

Situation Approach Trade-off
Conflicts are infrequent, retries are inexpensive, and one item is being updated Optimistic locking with a version and conditional write Detects conflicts at write time without coordinating a lock in advance.
Several items must change together Database transaction Provides all-or-nothing semantics across the grouped writes.
Long-running critical work or high contention makes retries costly Evaluate locking or another coordination strategy Adds coordination complexity but may be preferable to repeated failed writes.
DynamoDB global tables receive writes in multiple Regions Explicit application-level conflict handling AWS documents last-writer-wins reconciliation for global tables; version-based optimistic locking does not provide the expected cross-region protection.

AWS discusses these trade-offs in its DynamoDB guidance on concurrent updates. If an operation also triggers non-idempotent side effects, the version check alone does not protect those effects; design their handling separately.

Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.