Currently in testing: the GitHub code will be opened once complete.

T · Timed Out

Structurerefresh

Sent when an acquire request (A) failed to obtain the lock within wait — the server gave up without granting it (this is not an error).

owner is the value the request carried, echoed back verbatim as a correlator — the client uses it to pin down which request this response belongs to (see Reply Matching Rules).

Byte notation: op is an ASCII character, owner is binary (u64, big-endian), and key is UTF-8 text (variable-length, shown as N in the structure). The trailing \n is 0A. The fixed header is a binary value that may contain 0x0A, so it must be consumed by byte count first, before scanning for the newline.

Flow

Client
Server
A · acquire (key · wait · lease · owner)
held → enqueued
turn doesn't arrive within wait seconds
T · timed out
removed from the queue — send a new A to retry
requestresponse

By the moment T arrives, that request has already been removed from the queue, so the lock can never be granted to it later. Since no token was issued either, there's nothing to clean up — just retry.