NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #689 most downloaded on NuGet
Rebus is a lean service bus for .NET
Last release 3 days ago
29 Sep 2026
Release timing varies
gaps range from 2 weeks to 7 months
Nearly every release is documented
notes for 56 of the last 60 stable releases
15 versions withdrawn
withdrawn after publishing
127 years old
546 releases · first in 1900
Changed SQL persistence to work with IDbConnectionProvider as originally intended - thanks [MrMDavidson]
IDbConnectionProvider as originally intended - thanks [MrMDavidson]Separated error tracking out behind IErrorTracker interface, allowing for e.g. keeping error counts in a database somewhere, thus allowing for multipl
IErrorTracker interface, allowing for e.g. keeping error counts in a database somewhere, thus allowing for multiple parallel workers to not exceed maximum delivery attempts[Header("some_headers", "some_value")]One column per quarter.
Added pub/sub support to legacy compatibility mode
AzureServiceBusTransport to work with topics when doing pub/sub which then avoids having to configure subscription storage when working with Azure Service BusAdded some more headers to audited messages
Added ability to use external timeout manager
Made MSMQ transport work better in legacy mode
Added experimental legacy compatility option (.Options(o => o.EnableLegacyCompatibility()))
.Options(o => o.EnableLegacyCompatibility()))Added RavenDB persistence for subscriptions and timeouts - thanks [mclausen]
Added ability to storage subscriptions in a JSON file
Added TransactionScope support via the Rebus.TransactionScope package (note: requires at least .NET 4.5.1 for TransactionScopeAsyncFlowOption.Enabled
TransactionScope support via the Rebus.TransactionScope package (note: requires at least .NET 4.5.1 for TransactionScopeAsyncFlowOption.Enabled to be there)Refactored most of Rebus! NOTE: (very) breaking change!! - 0.90.0 version series will function as ALPHA and BETA of what will become Rebus 2.0.0
ITransport abstrationbus.Send(yourMessage).Wait() if you cannot await bus.Send(yourMessage))Made Azure Service Bus transport stop the peek lock renewal timer when the transaction context goes into the commit/rollback/cleanup phase. Seems more
MessageLockLostExceptions if the message would happen to be successfully completed right before attempting to renew the peek lock.Fixed concurrent message send in file system transport - thanks [mgibas]
Updated Serilog dep - thanks [tiipe]
Updated MongoDB stuff to work with MongoDB 3/WiredTiger - thanks [caspertdk]
Support for idempotent sagas via the Rebus.IdempotentSagas packages - thanks [pruiz]
Rebus.IdempotentSagas packages - thanks [pruiz]Support async initiation of sagas via IAmInitiatedByAsync<> - thanks [AndreaCuneo]
IAmInitiatedByAsync<> - thanks [AndreaCuneo]Changed default encoding of outgoing messages to be UTF8 instead of UTF7 when using the built-in JSON serializer
NewtonsoftJsonMessageSerializer that is honest about its dependency on Newtonsoft JSON.NET and thus lets you customize the serialization settings - thanks [joshua5822]Changed IStoreTimeouts API to return a DueTimeoutsResult instead of an IEnumerable
IStoreTimeouts API to return a DueTimeoutsResult instead of an IEnumerable<DueTimeout>SqlServerTimeoutStorage grab row locks on found due timeouts, allowing for "competing timeout consumers"* Fixed DryIoc nuget package
Added support for DryIoC - thanks [DixonD-git]
Added extension that allows for composing a chain-of-responsiblity-like way of determining message ownership - thanks [DixonD-git]
Rebus.Extensions package - might not be the final way, but it should do for nowMade PoisonMessageInfo ctor public so that the IErrorTracker can actually be implemented outside of Rebus - thanks [bchavez]
PoisonMessageInfo ctor public so that the IErrorTracker can actually be implemented outside of Rebus - thanks [bchavez]* Improved Serilog integration
Auto-subscribing extension on IBus - thanks [seankearon]
IBus - thanks [seankearon]Change SQL Server subscription storage command to be truly idempotent - thanks [tobiaxor]
Fixed container adapter registration bug that would make it impossible to have IMessageContext injected into more than one handler in the pipeline. Al
IMessageContext injected into more than one handler in the pipeline. Also ensures that the container does not dispose the message context.Fixed merge bug that made published Rebus core assembly unusable!
Fixed bug that would not allow for configuring and starting a bus without an XML configuration section.
IHandleMessagesAsync introduced - allows for having async message handlers
IHandleMessagesAsync introduced - allows for having async message handlersUpdated RabbitMQ dependency - thanks [maxx1337]
Added auditing capability - endpoints can now send a copy of the transport message to an audit queue whenever they have been successfully handled or p
Allow for specifying the messages table name on the SQL Server transport - thanks [tiipe]
Made SQL Server subscription storage & saga persister API accept connection string names (just like the SQL transport config) - thanks [tiipe]
Fixed SQL Server schema creation issue where querying sys.tables would give an error if the database's current collation results in case sensitive tab
sys.tables would give an error if the database's current collation results in case sensitive table names - thanks [tiipe]Ensure declaration of exchange when using OneExchangePerType - thanks [maeserichar]
OneExchangePerType - thanks [maeserichar]Fixed bug that could result in not automatically binding the error queue topic to the error queue when using RabbitMQ
Fixed vulnerability that could lead to executing arbitrary SQL statements by injecting it in a correlation property on a saga message when using SQL S…
Fix problem when trying to send Multicast message to error queue - thanks [maeserichar]
Added container adapter for SimpleInjector - thanks [oguzhaneren]
Removed MSMQ error queue existence check when queue is remote (because it can't be done, and because it doesn't make sense for remote queues)
ICanUpdateMultipleSagaDatasAtomically - thanks [PeteProgrammer]Added additional routing options with RabbitMQ - endpoints can now be adressed on several forms: topic, @exchange, and topic@exchange - thanks [pruiz]
topic, @exchange, and topic@exchange - thanks [pruiz]Added ability for RabbitMQ transport to publish to different exchanges instead of different routing keys - thanks [pruiz]
Fixed it so that inner exceptions are included when a SqlException causes saga persister to not be able to insert.
SqlException causes saga persister to not be able to insert.Updated StructureMap dependency to 3.0 - thanks [fritsduus]
Added ability to configure JSON serializer to serialize enums with their string representations - thanks [maeserichar]
Updated MongoDB driver dependency to 1.9
Added file system-based transport. Please do not use this one for your really important messages.
Added several Subscribe/Unsubscribe overloads to IRebusRouting so you can bus.Advanced.Routing.Subscribe(someMessageType) if you want
Subscribe/Unsubscribe overloads to IRebusRouting so you can bus.Advanced.Routing.Subscribe(someMessageType) if you wantFixed leakage of SQL connections (and other potential issues) when using ambient transactions - thanks [mgayeski]
Added to RavenDB saga persister the ability to obtain the current session from the outside, thereby allowing you to make the saga work part of the sam
Made it configurable whether null-valued correlation properties should be included in the inde with SQL Server saga persister.
Fixed but in SQL Server saga persister that could result in malformed SQL when there are no correlation properties at all.
Made SQL Server saga persister behave more like expected by skipping null-valued properties in the saga index.
Fixed bug when working with automatic TransactionScope and sagas persisted in SQL Server - thanks [jasperdk]
TransactionScope and sagas persisted in SQL Server - thanks [jasperdk]Fixed AttachHeader bug in FakeBus.
AttachHeader bug in FakeBus.Added 'CorrelationId' thread-local context variable to NLog logger, similar to how it's done with the Log4Net logger.
Fixed it so that the MarkedAsComplete event is raised also when a piece of saga data was never persisted - before, it was tied to the Deleted event fr
MarkedAsComplete event is raised also when a piece of saga data was never persisted - before, it was tied to the Deleted event from the persister, which you not be raised if the saga data was not persistent.Tweaked ASB transport so that send batching kicks in only when there's 100 or more messages to send
Don't make so many DEBUG logging statements while backing off
Your coding agent can read these notes before it upgrades. Set up the MCP server →