Commit Graph

2 Commits

Author SHA1 Message Date
Joseph Doherty 4e63820e7a feat(batch42): implement foundation helpers — msgtrace, monitor helpers, scheduler
Group A: Create MsgTrace.cs with TraceCompressionType, MsgTraceState (factory
methods, pipeline event helpers, sendEvent/sendEventFromJetStream, trace header
injection) and MsgTraceHelper (sample, genHeaderMapIfTraceHeadersPresent,
initAndSendIngressErrEvent, isMsgTraceEnabled, msgTraceSupport). Adds Trace field
to PublishArgument and Trace accessor to ParseContext.

Group C: Create MonitorHelpers.cs with GatewayzOptions, Gatewayz, RemoteGatewayz,
AccountGatewayz, ExtImport, ExtServiceLatency types; plus 25 standalone helper
functions (newSubsDetailList, newSubsList, createProxyInfo, makePeerCerts,
decodeBool, decodeUint64, decodeInt, decodeState, decodeSubs, newSubDetail,
newClientSubDetail, myUptime, tlsCertNotAfter, urlsToStrings, getPinnedCertsAsSlice,
getMonitorGWOptions, createOutboundRemoteGatewayz, createOutboundAccountsGatewayz,
createAccountOutboundGatewayz, createInboundAccountsGatewayz,
createInboundAccountGatewayz, ResponseHandler, handleResponse, newExtServiceLatency,
newExtImport).

Group D: Implement GetScheduledMessages in MsgScheduling; add Seq field to InMsg
for out-of-band scheduling sort. Group B (GatewayInterestMode.String) already complete.
2026-03-01 08:42:50 -05:00
Joseph Doherty 11c0b92fbd feat: port session 02 — Utilities & Queues (util, ipqueue, scheduler, subject_transform)
- ServerUtilities: version helpers, parseSize/parseInt64, parseHostPort, URL redaction,
  comma formatting, refCountedUrlSet, TCP helpers, parallelTaskQueue
- IpQueue<T>: generic intra-process queue with 1-slot Channel<bool> notification signal,
  optional size/len limits, ConcurrentDictionary registry, single-slot List<T> pool
- MsgScheduling: per-subject scheduled message tracking via HashWheel TTLs,
  binary encode/decode with zigzag varint, Timer-based firing
- SubjectTransform: full NATS subject mapping engine (11 transform types: Wildcard,
  Partition, SplitFromLeft, SplitFromRight, SliceFromLeft, SliceFromRight, Split,
  Left, Right, Random, NoTransform), FNV-1a partition hash
- 20 tests (7 util, 9 ipqueue, 4 subject_transform); 45 benchmarks/split tests marked n/a
- All 113 tests pass (112 unit + 1 integration)
- DB: features 328/3673 complete, tests 139/3257 complete (8.7% overall)
2026-02-26 09:39:36 -05:00