Foundatio by ejsmith, bniemyjski

<PackageReference Include="Foundatio" Version="3.0.532" />

 IQueue<T>

public interface IQueue<T> : IHaveSerializer, IDisposable

string QueueId { get; }

Task AbandonAsync(string id)

void AttachBehavior(IQueueBehavior<T> behavior)

Task CompleteAsync(string id)

Task<QueueEntry<T>> DequeueAsync(CancellationToken cancellationToken = default)

Task<string> EnqueueAsync(T data)

Task<IEnumerable<T>> GetDeadletterItemsAsync(CancellationToken cancellationToken = default)

void StartWorking(Func<QueueEntry<T>, CancellationToken, Task> handler, bool autoComplete = false, CancellationToken cancellationToken = default)