Zum Hauptinhalt springen

IAdapterPoolHubCallbacks

Namespace: Meshmakers.Octo.Communication.Contracts.Hubs

Controller → pool member callbacks of /adapterPoolHub (AB#4924, concept §4).

public interface IAdapterPoolHubCallbacks

Methods​

LeaseAsync(LeaseDto)​

Hands the member one tenant for one work item.

Task LeaseAsync(LeaseDto lease)

Parameters​

lease LeaseDto

Returns​

Task

Remarks:

The member enters the lease — tenant scope, borrower credential, tenant repository, pipeline definitions — executes, and reports back through IAdapterPoolHub.ReleaseLeaseAsync. Between two leases it must retain nothing tenant-scoped; that is the invariant the whole feature rests on (concept §4), and it is a cross-tenant data incident rather than a bug when it breaks.

🔴 LeaseDto.ClientSecret travels on this call. It is TTL-scoped, must never be persisted by the member and must never reach a log target.

DrainAsync(String)​

Asks the member to stop taking leases and shut down once its current work item ends.

Task DrainAsync(string reason)

Parameters​

reason String

Returns​

Task

Remarks:

Used when the pool scales in (concept §4a) and when a lease expired server-side: a member whose release never arrived is drained and restarted rather than re-used, because its post-lease cleanliness is unproven (concept §6).