feat: route publishes to jetstream with puback

This commit is contained in:
Joseph Doherty
2026-02-23 06:03:24 -05:00
parent 5f530de2e4
commit 95691fa9e7
6 changed files with 116 additions and 4 deletions

View File

@@ -0,0 +1,30 @@
namespace NATS.Server.JetStream.Publish;
public sealed class JetStreamPublisher
{
private readonly StreamManager _streamManager;
public JetStreamPublisher(StreamManager streamManager)
{
_streamManager = streamManager;
}
public bool TryCapture(string subject, ReadOnlyMemory<byte> payload, out PubAck ack)
{
var stream = _streamManager.FindBySubject(subject);
if (stream == null)
{
ack = new PubAck();
return false;
}
var seq = stream.Store.AppendAsync(subject, payload, default).GetAwaiter().GetResult();
ack = new PubAck
{
Stream = stream.Config.Name,
Seq = seq,
};
return true;
}
}