Skip to main content

AdapterPoolHubReadinessHealthCheck

Namespace: Meshmakers.Octo.Sdk.Common.Adapters

Readiness check of an adapter pool member (AB#4924 AP-I5): a member the communication controller has no registration for is never leased, so it is not ready.

public sealed class AdapterPoolHubReadinessHealthCheck : HubRegistrationReadinessHealthCheck, IHealthCheck

Inheritance Object → HubRegistrationReadinessHealthCheck → AdapterPoolHubReadinessHealthCheck
Implements IHealthCheck

Remarks:

🔴 Readiness follows the registration at the pool hub, never a lease. An idle member holds no tenant and is exactly as ready as a busy one — a check that waited for a lease would keep every member of an idle pool 0/1 for ever. The same reasoning is why the dedicated adapter's AdapterHubReadinessHealthCheck must never be registered on a member: a member has no adapter hub connection, so it would never pass.

A member receives no traffic through its Service — work arrives on the management connection — so a failing probe here changes no routing. What it buys is visibility (0/1 instead of a green pod that is never leased) and a rollout that does not report success for members that cannot register.

🔴 A draining member is not ready (AB#5864), whatever its registration says: it takes no further lease, so a green probe would show a pod that is never leased again as healthy — exactly the test-2-dev picture of a pool that was dead behind a 1/1 pod. AdapterPoolMemberDrainExitService stops the process once it is idle.

Constructors​

AdapterPoolHubReadinessHealthCheck(IAdapterPoolHubClient, IAdapterHubRegistrationState, IOptions<AdapterOptions>, AdapterPoolClient)​

Readiness check of an adapter pool member (AB#4924 AP-I5): a member the communication controller has no registration for is never leased, so it is not ready.

public AdapterPoolHubReadinessHealthCheck(IAdapterPoolHubClient adapterPoolHubClient, IAdapterHubRegistrationState registrationState, IOptions<AdapterOptions> adapterOptions, AdapterPoolClient poolClient)

Parameters​

adapterPoolHubClient IAdapterPoolHubClient

registrationState IAdapterHubRegistrationState

adapterOptions IOptions<AdapterOptions>

poolClient AdapterPoolClient

Remarks:

🔴 Readiness follows the registration at the pool hub, never a lease. An idle member holds no tenant and is exactly as ready as a busy one — a check that waited for a lease would keep every member of an idle pool 0/1 for ever. The same reasoning is why the dedicated adapter's AdapterHubReadinessHealthCheck must never be registered on a member: a member has no adapter hub connection, so it would never pass.

A member receives no traffic through its Service — work arrives on the management connection — so a failing probe here changes no routing. What it buys is visibility (0/1 instead of a green pod that is never leased) and a rollout that does not report success for members that cannot register.

🔴 A draining member is not ready (AB#5864), whatever its registration says: it takes no further lease, so a green probe would show a pod that is never leased again as healthy — exactly the test-2-dev picture of a pool that was dead behind a 1/1 pod. AdapterPoolMemberDrainExitService stops the process once it is idle.