Zum Hauptinhalt springen

AdapterPoolMemberOptions

Namespace: Meshmakers.Octo.Sdk.Common.Adapters

Configuration of a process that runs as an adapter pool member (AB#4924, increment 6).

public class AdapterPoolMemberOptions

Inheritance Object β†’ AdapterPoolMemberOptions

Remarks:

Section AdapterPool, i.e. OCTO_ADAPTERPOOL__ADAPTERPOOLTENANTID and friends β€” the property name repeats the section, and shortening either half binds nothing (AB#5303 item 5; AdapterPoolMemberConfigurationGuard now refuses to start on it). The values name the lending tenant and its pool; they never name a borrower, because a member has no borrower until a lease arrives.

πŸ”΄ There is no DedicatedTenantId here, and there must not be. A pool member that carried one would have a process-wide tenant to fall back on, which is the exact hazard AdapterOptions.TenantId was deleted to remove (increment 3). Between leases a member serves nobody β€” for the work it executes.

πŸ”΄ That is not the same as having no connection tenant. An earlier version of this remark said a member "has none" full stop, and that was wrong: the management connection is authorized against the lending tenant (concept Β§8, Q4), so the member's own credential needs one. It is derived from AdapterPoolMemberOptions.AdapterPoolTenantId by ConfigureAdapterAuthenticatorOptions rather than configured separately β€” two settings that must agree are two settings that can disagree. Without it the constructor default applies, the member registers under the wrong tenant, and staged LogOnly authorization accepts that silently. It cost a diagnosis during the first end-to-end lease run.

Fields​

SectionName​

Configuration section name.

public static string SectionName;

Properties​

AdapterPoolTenantId​

The tenant that owns the pool β€” the lender. Authorization of the management connection is evaluated against it (concept Β§8, Q4).

public string AdapterPoolTenantId { get; set; }

Property Value​

String

AdapterPoolRtId​

RtId of the AdapterPool entity in AdapterPoolMemberOptions.AdapterPoolTenantId.

public string AdapterPoolRtId { get; set; }

Property Value​

String

MemberId​

Stable identity of this member process across reconnects, recorded on every execution it serves as LeasedOnMemberId. Defaults to the machine name, which is the pod name in Kubernetes β€” the value an operator would look for anyway.

public string MemberId { get; set; }

Property Value​

String

ExitWhenDrained​

Whether a draining member stops its process once it holds no lease, so the pool workload restarts it as a fresh, clean member (AB#5864). Default true: the drain contract is "finish what you hold, take nothing new, exit". Set false (OCTO_ADAPTERPOOL__EXITWHENDRAINED=false) only to keep a drained member alive for diagnosis β€” it then takes no lease and only drops out of readiness.

public bool ExitWhenDrained { get; set; }

Property Value​

Boolean

IsEnabled​

Whether this process is configured as a pool member at all. Both identifiers are required: a member that knew its pool but not its tenant could not be authorized, and one that knew its tenant but not its pool could not be routed a lease.

public bool IsEnabled { get; }

Property Value​

Boolean

EffectiveMemberId​

The member id to present, falling back to the machine name.

public string EffectiveMemberId { get; }

Property Value​

String

Constructors​

AdapterPoolMemberOptions()​

public AdapterPoolMemberOptions()