feat: complete final jetstream parity transport and runtime baselines
This commit is contained in:
@@ -10,6 +10,7 @@ public sealed class MemStore : IStreamStore
|
||||
public ulong Sequence { get; init; }
|
||||
public string Subject { get; init; } = string.Empty;
|
||||
public string PayloadBase64 { get; init; } = string.Empty;
|
||||
public DateTime TimestampUtc { get; init; }
|
||||
}
|
||||
|
||||
private readonly object _gate = new();
|
||||
@@ -26,6 +27,7 @@ public sealed class MemStore : IStreamStore
|
||||
Sequence = _last,
|
||||
Subject = subject,
|
||||
Payload = payload,
|
||||
TimestampUtc = DateTime.UtcNow,
|
||||
};
|
||||
return ValueTask.FromResult(_last);
|
||||
}
|
||||
@@ -82,6 +84,7 @@ public sealed class MemStore : IStreamStore
|
||||
Sequence = x.Sequence,
|
||||
Subject = x.Subject,
|
||||
PayloadBase64 = Convert.ToBase64String(x.Payload.ToArray()),
|
||||
TimestampUtc = x.TimestampUtc,
|
||||
})
|
||||
.ToArray();
|
||||
return ValueTask.FromResult(JsonSerializer.SerializeToUtf8Bytes(snapshot));
|
||||
@@ -107,6 +110,7 @@ public sealed class MemStore : IStreamStore
|
||||
Sequence = record.Sequence,
|
||||
Subject = record.Subject,
|
||||
Payload = Convert.FromBase64String(record.PayloadBase64),
|
||||
TimestampUtc = record.TimestampUtc,
|
||||
};
|
||||
_last = Math.Max(_last, record.Sequence);
|
||||
}
|
||||
@@ -126,6 +130,7 @@ public sealed class MemStore : IStreamStore
|
||||
Messages = (ulong)_messages.Count,
|
||||
FirstSeq = _messages.Count == 0 ? 0UL : _messages.Keys.Min(),
|
||||
LastSeq = _last,
|
||||
Bytes = (ulong)_messages.Values.Sum(m => m.Payload.Length),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user