Skip to content

3.0.0

Choose a tag to compare

@jasonshave jasonshave released this 16 Oct 18:49
· 4 commits to master since this release
d18e9f8

Breaking release; requires .NET 10. If you're on .NET 8, stay on 2.x, which keeps receiving fixes.

  • Send, receive and process are separate. Inject IQueueSender, IQueueReceiver or IStorageQueue. Named clients use [FromKeyedServices("name")].
  • Hosted processor. AddClient(...).AddProcessor<TMessage, THandler>() runs the receive loop for you: backoff, lease renewal while the handler runs, retries, a poison queue, cancellation and graceful shutdown.
  • Messages settle themselves. Call CompleteAsync, AbandonAsync, RenewLockAsync or DeadLetterAsync on the message. A body that can't be read is returned with Error set instead of failing the whole receive.
  • Per-client configuration. Each client can have its own serializer and processor, and ValidateOnStart() fails startup if a client is misconfigured.
  • The 2.x client API is removed. See Upgrading from 2.x in the README.

Full details: #42, design in #39.