@botmesh/core - v2.0.0-alpha.2
    Preparing search index...

    Interface LeaseProvider

    A fenced, expiring lease per key. Implementations must make each call atomic:

    • acquire grants the key when it is free or expired (a new, larger token), or extends it when owner already holds it (same token); else returns null.
    • renew extends the lease only when owner still holds it with token.
    • release frees the key only when owner holds it with token (else no-op). Tokens never go backwards for a key, even across release and expiry.
    interface LeaseProvider {
        acquire(
            key: string,
            owner: string,
            ttlMs: number,
        ): Promise<LeaseGrant | null>;
        renew(
            key: string,
            owner: string,
            token: number,
            ttlMs: number,
        ): Promise<boolean>;
        release(key: string, owner: string, token: number): Promise<void>;
    }

    Implemented by

    Index
    • Parameters

      • key: string
      • owner: string
      • token: number
      • ttlMs: number

      Returns Promise<boolean>

    • Parameters

      • key: string
      • owner: string
      • token: number

      Returns Promise<void>