Releases: MvRens/Tapeti
3.0
Tapeti
Breaking changes
-
Dropped support for .NET Standard (and therefore .NET Framework 4.x). .NET 6 or higher is now required for the client.
Note; Tapeti.Annotations continues to support .NET Standard 2.0, and as long as your Messaging packages do too you can still use Tapeti 2 on older projects and the messages published and consumed should be compatible.
-
Removed TapetiAppSettingsConnectionParams. Use TapetiConnectionParams instead using a URL or by specifying the properties manually. Alternatively you can use the ConnectionStringParser in the Tapeti.Helpers namespace. Both of these were already available in Tapeti 2, and if you used those nothing changed.
-
All middleware now uses ValueTask instead of Task.
Changes:
-
ValueTask support for most methods (converge methods in Flow are the exception for now).
-
Added support for queue arguments (message TTL, maximum length, etc.).
-
Fixed #38: durable queues are verified more than once.
2.9
2.8.2
2.8.1
Tapeti core
- Fixed NullReferenceException on shutdown when an obsolete queue is no longer present
- Fixed PrefetchCount being incorrectly applied to the publish channel instead of the consume channel, resulting in all messages on the queue being consumed simultaniously
2.8
Tapeti.Serilog
- Added optional WithMessageHandlerLogging middleware to output the time a message handler takes to the Serilog Logger. Includes a warning treshold and the ability to inject an IDependencyContext to add custom properties.
Repository split
- Tapeti.Annotations, Tapeti.DataAnnotations.Extensions have been moved to their own Github repositories and are built separately. As these are rarely updated this stabilizes their version numbers which should improve compatibility for services consuming message packages from other services instead of forcing them to have the same Tapeti version.
- Tapeti.Cmd has also been moved to it's own Github repository as it has no dependency on the Tapeti library and vice versa.
2.7.6
Tapeti core
- Fixed disposing non-IAsyncDisposable payloads in the message context. This could cause a response handled by Tapeti.Flow to block the consumers as the lock on a flow ID is never released.
If you are using Tapeti 2.4 or higher and are using Tapeti.Flow, upgrading to this version is highly recommended.
2.7.5
2.7.1
2.6
Tapeti core
- Separated publishing into separate channel and task queue to (hopefully) improve issues with acknowledgement timeouts
- Fixed error when consuming a queue with incompatible arguments (like x-deadletter) when using EnableDeclareDurableQueues
Tapeti.Flow
- Validate persisted flows on startup to prevent runtime errors if a continuation method is renamed
- Fixed edge-case when receiving a flow-related message twice
Tapeti.Cmd
- Fixed body corruption in Shovel command
- Added DeclareQueue, RemoveQueue, BindQueue and UnbindQueue management commands
Breaking changes
This version should be compatible for existing clients. One change may require changes to custom ILogger implementations:
- QueueExistsWarning method has been added to IBindingLogger