feat: add INatsClient interface and implement on NatsClient

Extract INatsClient interface from NatsClient to enable internal clients
(SYSTEM, ACCOUNT) to participate in the subscription system without
requiring a socket connection. Change Subscription.Client from concrete
NatsClient to INatsClient, keeping IMessageRouter and RemoveClient using
the concrete type since only socket clients need those paths.
This commit is contained in:
Joseph Doherty
2026-02-23 05:18:37 -05:00
parent 5e11785bdf
commit 0e7db5615e
4 changed files with 34 additions and 2 deletions

View File

@@ -9,5 +9,5 @@ public sealed class Subscription
public required string Sid { get; init; }
public long MessageCount; // Interlocked
public long MaxMessages; // 0 = unlimited
public NatsClient? Client { get; set; }
public INatsClient? Client { get; set; }
}