feat: implement SubscriptionIndex + JetStreamMemStore cluster — 39 features verified

Add SubscriptionIndex factory methods, notification wrappers, and
ValidateMapping. Implement 24 MemStore methods (TTL, scheduling, SDM,
age-check, purge/compact/reset) with JetStream header helpers and
constants. Verified features: 987 → 1026.
This commit is contained in:
Joseph Doherty
2026-02-27 06:19:47 -05:00
parent 4e61314c1c
commit ba4f41cf71
9 changed files with 897 additions and 8 deletions

View File

@@ -38,6 +38,32 @@ public static class NatsHeaderConstants
// Other commonly used headers.
public const string JsMsgId = "Nats-Msg-Id";
public const string JsMsgRollup = "Nats-Rollup";
public const string JsMsgSize = "Nats-Msg-Size";
public const string JsResponseType = "Nats-Response-Type";
public const string JsMessageTtl = "Nats-TTL";
public const string JsMarkerReason = "Nats-Marker-Reason";
public const string JsMessageIncr = "Nats-Incr";
public const string JsBatchId = "Nats-Batch-Id";
public const string JsBatchSeq = "Nats-Batch-Sequence";
public const string JsBatchCommit = "Nats-Batch-Commit";
// Scheduling headers.
public const string JsSchedulePattern = "Nats-Schedule";
public const string JsScheduleTtl = "Nats-Schedule-TTL";
public const string JsScheduleTarget = "Nats-Schedule-Target";
public const string JsScheduleSource = "Nats-Schedule-Source";
public const string JsScheduler = "Nats-Scheduler";
public const string JsScheduleNext = "Nats-Schedule-Next";
public const string JsScheduleNextPurge = "purge";
// Rollup values.
public const string JsMsgRollupSubject = "sub";
public const string JsMsgRollupAll = "all";
// Marker reasons.
public const string JsMarkerReasonMaxAge = "MaxAge";
public const string JsMarkerReasonPurge = "Purge";
public const string JsMarkerReasonRemove = "Remove";
}
/// <summary>