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 today
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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Fix bug that can result in accidentally logging IndexOutOfRangeExceptionss when entering idle state, just when the server clock is adjusted back in ti
IndexOutOfRangeExceptionss when entering idle state, just when the server clock is adjusted back in timeAdd a couple of strategic logging statements around message dispatch
Fix BuiltinHandlerActivator disposal race condition bug (could accidentally call a handler method with a null bus during shutdown)
BuiltinHandlerActivator disposal race condition bug (could accidentally call a handler method with a null bus during shutdown)SagaFixture to be completely ignored - thanks [madstt]Add additional allowed saga correlation property types: bool, byte, short, and long
bool, byte, short, and longAdd missing Injectionist access methods on RebusLoggingConfigurer
RebusLoggingConfigurerAdd ability to forward to multiple recipients with a transport message forwarder function
Allow for customizing how the ambient transaction context is accessed (e.g. by backing it with HttpContext.Current.Items if that works better in your
HttpContext.Current.Items if that works better in your case)* THIS is Rebus 2 :o)
* This is Rebus 2 :)
Add separate wait methods to ISyncBackoffStrategy in order to differentiate between waiting because no more parallel operations are allowed, and waiti
ISyncBackoffStrategy in order to differentiate between waiting because no more parallel operations are allowed, and waiting because no message was receiveddeliveryTimeoutSeconds paramater to Deliver method of SagaFixture in order to allow for not timing out when e.g. step-debugging saga message processingMove SQL Server things to separate repository and NuGet package Rebus.SqlServer
Rebus.SqlServerMove MSMQ things to separate repository and NuGet package Rebus.Msmq
Rebus.MsmqFix file-based lock which was kept for longer than necessary (i.e. until GC would collect the FileStream that had not been properly disposed)
FileStream that had not been properly disposed)Update NUnit dependency to 3.4.1
Update to .NET 4.5.2 because it is the lowest framework version currently supported by Microsoft
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Improve SQL transport expired messages cleanup to hit an index - thanks [xenoputtss]
Added ability to set up the advanced bus APIs for testing
Nothing published for this version
Back to targeting .NET 4.5. only
Experimentally multi-targeting .NET 4.5, 4.5.2, 4.6, and 4.6.1 (but it dit NOT work for 4.6 and 4.6.1)
Nothing published for this version
Mark assemblies as CLS compliant becase VB.NET and F# programmers are most welcome too - thanks [NKnusperer]
o.UseClassicRebusWorkersMessageDispatch())Add GZIPping capability to data bus storage - can be enabled by attaching .UseCompression() in the data bus configuration builder
.UseCompression() in the data bus configuration builderPoisonQueueErrorHandler which implements IErrorHandler. Make room for customizing what to do about failed messages.Respect worker shutdown timeout also when stopping the worker
Fix bug in RavenDB saga persister that would not properly guard saga data against race conditions in the face of concurrent updates
UseThreadPoolMessageDispatch on the options configurerUpdate AWS SDK version to latest (AWSSDK.Core 3.1.9.1, AWSSDK.SQS 3.1.0.12) - thanks [gertjvr]
Provide optional Jil configuration Options parameter, allowing for customizing serialization settings - thanks [Rzpeg]
Options parameter, allowing for customizing serialization settings - thanks [Rzpeg]Send on the other bus' transportUpdated Newtonsoft JSON.NET to 9.0.1 throughout
rbs2-disable-encryption header (can be found as a constant in EncryptionHeaders.DisableEncryptionHeader)Exceptions in IFailed<TMessage>Added file system-based saga storage and timeout storage - thanks [jeffreyabecker]
Rebus.Recipes convenience package with helpful extensions for identity propagation and consistent persistence configurations - thanks [jeffreyabecker]Added MSMQ transport configuration builder to allow for customizing the MessageQueue, e.g. by setting/changing permissions
MessageQueue, e.g. by setting/changing permissionsFixed potential locked-file issue when multiple readers are reading the same data with the data bus
Maintain time of last read access in all data bus storages
DataBusAttachment serializable with all currently supported serializers (JSON.NET, Jil, Wire, and Protobuf)Added simple metadata API to data bus
Added ability configure prefetch count with RabbitMQ
Changed data type of the SQL Server saga storage [data] column to VARBINARY(MAX) because NVARCHAR(MAX) was extremely slow! (existing tables with NVARC
[data] column to VARBINARY(MAX) because NVARCHAR(MAX) was extremely slow! (existing tables with NVARCHAR(MAX) data should still work fine - a simple schema check is made at startup)Fixed MSMQ mangled message receive so that the message is not "lost"
Receive operation of the transport - thanks [Rzpeg]Updated StructureMap to 4.2.0.402
Added ability to specify custom client properties with RabbitMQ
Changed timeout settings on Azure Service Bus transport to respect the setting from the connection string - thanks [Rzpeg]
QueueingBasicConsumer instead of polling - thanks [Hangsolow]IEncryptor service - thanks [zabulus]Real pause (5 s) when the next transport message cannot be received
Nothing published for this version
Extended polymorphic saga correlation to make proper use of implemented interfaces too
Moved .UseExternalTimeoutManager(...) configuration method to the .Timeouts(t => ...) configurer because it more natural
.UseExternalTimeoutManager(...) configuration method to the .Timeouts(t => ...) configurer because it more naturalUpdated RabbitMQ dependency to 3.6.1
Rebus.AzureStorageQueues NuGet package to Rebus.AzureStorage because it has integration things for Azure storageFixed concurrency issues in RavenDB saga storage - remember to use optimistic concurrency regardless of the configuration of the document store
Don't rethrow ResolutionException inside another ResolutionException in case of configuration errors - the stack trace reveals the call stack so nicel
ResolutionException inside another ResolutionException in case of configuration errors - the stack trace reveals the call stack so nicely, there's no need to have 10 layers of exceptions tooIFailed<TMessage> anywhere (because it is most likely an error)Moved defer-recipient header check to the pipeline, giving other pipeline steps a chance to set it
Better error behavior when deferring a message from a one-way client without setting the defer-recipient
Added ability to set up fake saga data in SagaFixture
SagaFixtureFakeBusAdded option for Azure Service Bus transport to skip queue creation to make it possible to use a read-only SAS key instead of a connection string with
Updated StructureMap dependency to 4.1.2.386 - thanks [dougkwilson]
TransactionScope support extensionYour coding agent can read these notes before it upgrades. Set up the MCP server →