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β
AdapterPoolRtIdβ
RtId of the AdapterPool entity in AdapterPoolMemberOptions.AdapterPoolTenantId.
public string AdapterPoolRtId { get; set; }
Property Valueβ
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β
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β
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β
EffectiveMemberIdβ
The member id to present, falling back to the machine name.
public string EffectiveMemberId { get; }
Property Valueβ
Constructorsβ
AdapterPoolMemberOptions()β
public AdapterPoolMemberOptions()