feat: enforce jetstream ack and redelivery semantics

This commit is contained in:
Joseph Doherty
2026-02-23 06:09:26 -05:00
parent fecb51095f
commit d3aad48096
7 changed files with 104 additions and 7 deletions

View File

@@ -66,7 +66,7 @@ public sealed class ConsumerManager
public void OnPublished(string stream, StoredMessage message)
{
foreach (var handle in _consumers.Values.Where(c => c.Stream == stream && c.Config.Push))
_pushConsumerEngine.Enqueue(handle.PushFrames, message, handle.Config);
_pushConsumerEngine.Enqueue(handle, message);
}
public PushFrame? ReadPushFrame(string stream, string durableName)
@@ -86,4 +86,5 @@ public sealed record ConsumerHandle(string Stream, ConsumerConfig Config)
public ulong NextSequence { get; set; } = 1;
public Queue<StoredMessage> Pending { get; } = new();
public Queue<PushFrame> PushFrames { get; } = new();
public AckProcessor AckProcessor { get; } = new();
}