use Arc;
use ;
/// Factory for per-entity (or per-key) [`AsyncLock`]s.
///
/// `QueuedRepository` uses an `AsyncLockManager` to obtain a lock for each
/// aggregate stream. The default [`InMemoryAsyncLockManager`](super::InMemoryAsyncLockManager)
/// stores locks in a `HashMap`; distributed implementations can talk to Redis,
/// Postgres advisory locks, or another lease backend.