static SYNC_READ_CONCURRENCY: SemaphoreExpand description
How many com.atproto.sync.* reads may hold a blocking-pool thread at
once, across every caller.
The same bound crate::blobs’s BLOB_READ_CONCURRENCY puts on
getBlob, and for the same reason: these reads run on the pool session
creation, provisioning, deletion and firehose publishing also draw from,
and each can rebuild the Merkle search tree and sign a commit. Without a
bound, crate::MAX_CONCURRENT_REQUESTS is the only one, and the
deployment runs two async workers.
A caller that finds every permit taken waits for one, and
REQUEST_TIMEOUT’s layer answers 503 if that wait outlasts the
request.