PoolMemberRegistrationDto
Namespace: Meshmakers.Octo.Communication.Contracts.DataTransferObjects
A pool member introducing itself on /adapterPoolHub (AB#4924, concept ยง4).
public record PoolMemberRegistrationDto : IEquatable<PoolMemberRegistrationDto>
Inheritance Object โ PoolMemberRegistrationDto
Implements IEquatable<PoolMemberRegistrationDto>
Remarks:
๐ด This connection is not tenant-addressed, and that is the whole point. A pool member belongs to no tenant; it is handed one per lease. The declared PoolMemberRegistrationDto.PoolTenantId is the lending tenant โ the owner of the pool โ which is what the connection is authorized against (concept ยง8, Q4). Authority over a borrower comes from the lease, never from this connection.
PoolMemberRegistrationDto.MemberId is proposed by the member rather than assigned by the controller
because it has to survive a reconnect: it is what a borrower's execution records as
LeasedOnMemberId, and a value that changed on every network blip would make the
per-member queue view (concept ยง5) unreadable. A pod name is the natural value.
๐ด replaced an earlier NodeNames string list. A bare name cannot answer any of the questions the borrower's deploy path asks: the execution class of a trigger, whether a trigger is process-bound, which node version is present, or what the configuration schema of a node looks like. The member already builds full descriptors for the dedicated registration path, so sending them here is reuse, not a second source. The old field was never populated by any member and never read by any controller, so nothing on the wire carried it in either direction.
Propertiesโ
PoolTenantIdโ
The tenant that owns the AdapterPool this member belongs to โ the lender.
The hub refuses a registration whose declared tenant is not the one the connection's token
was issued for.
public string PoolTenantId { get; set; }
Property Valueโ
PoolRtIdโ
RtId of the AdapterPool in PoolMemberRegistrationDto.PoolTenantId. Bare 24-character hex.
public string PoolRtId { get; set; }
Property Valueโ
MemberIdโ
Stable identity of this member process across reconnects. Recorded on every execution the
member serves as LeasedOnMemberId.
public string MemberId { get; set; }
Property Valueโ
NodeDescriptorsโ
The pipeline nodes this member can execute, in exactly the shape a dedicated adapter
reports on RegisterAdapterWithSchemaAsync.
public IReadOnlyList<NodeDescriptorDto> NodeDescriptors { get; set; }
Property Valueโ
IReadOnlyList<NodeDescriptorDto>
Remarks:
The controller stores them per pool so a borrowing tenant's deploy path can resolve an execution class and classify process-bound triggers against the process that will actually run the pipeline. A member that reports none degrades to the controller's name-based fallback โ the same degradation a dedicated adapter that never connected produces โ and stays leasable.
PipelineSchemaJsonโ
The composite pipeline JSON Schema this member validates against, or null when it cannot produce one. Same value a dedicated adapter sends on registration; the controller validates a leased pipeline definition against it at deploy time, because validating against no schema at all is worse than validating against the pool's.
public string PipelineSchemaJson { get; set; }
Property Valueโ
Constructorsโ
PoolMemberRegistrationDto()โ
public PoolMemberRegistrationDto()