Thread & Logic
Menu
Studio notes

When two people open the same item

A shared queue needs a clear rule for ownership and changed work.

The list is already making decisions

A queue can look like a neutral list of unfinished tasks. In practice, its filters and labels influence who opens an item and what they expect to find. Ready for review should mean that the necessary material is present and the item is available to the people allowed to decide it.

Start with the assignment boundary. A shared service queue may contain work for different teams or roles. Showing all items to every user makes each person reconstruct that boundary themselves. The application can present the relevant work while still keeping access checks on the underlying requests.

One item, two open screens

Consider a hypothetical request opened by two reviewers. One person updates the proposed response while the other is reading the earlier version. The second person then chooses Approve. Both people may have acted sensibly from what their screens showed.

The application now needs to establish whether that decision applies to the current item. Accepting it without a version check can hide the intervening edit. Rejecting it with a vague error leaves the reviewer unsure whether their work was saved. A useful response identifies that the item changed, shows the current version and gives the person a way to reconsider their decision.

Reservation and version checks solve different problems

A reservation can make ownership visible while someone works. The queue might show that an item is being reviewed and offer a deliberate way to release or reassign it. Reservations need an answer for abandoned browser sessions, people going offline and work that must be taken over.

A version check protects an update by comparing the version the person saw with the current saved version. It can detect a conflict even when reservations are not used. Where the underlying storage supports it, the check and update should be performed together so a second change cannot slip between them. An application can use both mechanisms, but their responsibilities should remain understandable.

An item may leave review without being complete

After approval, an action may still be waiting for a connected service. Returning that item immediately to an undifferentiated completed list can make a stalled action disappear from attention. Keeping it in the review list can instead invite another person to repeat a decision already made.

A separate state can show that review is finished while execution remains pending. The responsible team needs the latest known outcome and a next action when something is uncertain. The queue should not require operators to read technical logs before they can tell whether a request needs their attention.

Use state names that survive a real working day

Try reading the queue after a handover, when the person opening it did not prepare the drafts. They should be able to distinguish missing information, active review, waiting execution and work that requires investigation. These labels need to describe the task, not merely the last button pressed.

The storage record may carry version numbers and integration references that are too detailed for the main list. Those details can remain available inside the item. The main list should help someone find work that needs a decision, then open the details behind it.