NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #2453 most downloaded on NuGet
Provides an Autofac container adapter for Rebus
Last release 3 years ago
no release in 18 months
Ships fairly regularly
a new release about every 4 months
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
358 releases · first in 2012
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
Add Events configuration method on OptionsConfigurer to provide easier access to BusLifetimeEvents
Events configuration method on OptionsConfigurer to provide easier access to BusLifetimeEventsAdd ability to enable encryption of data bus attachments
Change default JSON serializer to System.Text.Json (this is a BREAKING change! Please remember to .Serializer(s => s.UseNewtonsoftJson())) if you rely…
.Serializer(s => s.UseNewtonsoftJson())) if you rely on e.g. inheritance and other advanced stuffConfigure.OneWayClient() API which can be used to configure one-way clients, because handlers - and thus also the handler activator - are irrelevant - thanks [riezebosch]IErrorTracker async to enable future distributed error tracking scenariosICorrelationErrorHandler for handling cases where an incoming message matches a saga, but it cannot be correlated with an existing instance, and the message is not allowed to initiate a new saga. Enabled customization of how Rebus should behave.Move data bus configuration to main configurer, so now you can go .DataBus(d => d.StoreInFileSystem(@"\\network-path\folder"))
.DataBus(d => d.StoreInFileSystem(@"\\network-path\folder"))d.SendBigMessagesAsAttachments(bodySizeThresholdBytes: 200*1000).Options(o => o.FailFastOn<TException>()) or .Options(o => o.FailFastOn<TException>(when: ex => ex.Message.Contains("whatever")))RebusTransactionScope so it can be used inside Rebus handlers (in case that would be handy to anyone)IDictionary<string, string> - thanks [hellfirehd]TransactionContext to use event (code-generated lists of callbacks) instead of ConcurrentQueue<Func<Task>> - thanks [jods4]ManualResetEvent from Rebus' async background task implementation - thanks [jods4]RebusTransactionScopeSuppressor, which may be used in cases where an already active Rebus transaction scope must be temporarily suppressedNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Allow for setting the default return address by going .Options(o => o.SetDefaultReturnAddress("another-queue"))
.Options(o => o.SetDefaultReturnAddress("another-queue"))Port changes from 4.3.0 forward
Move entire Rebus.Testing namespace to its own NuGet package: Rebus.TestHelpers (named "TestHelpers" to avoid confusing it with Rebus' own test projec
Rebus.Testing namespace to its own NuGet package: Rebus.TestHelpers (named "TestHelpers" to avoid confusing it with Rebus' own test project, and just because it's more appropriate)IDisposable instances tracked by Injectionist in the event that an IInitializable fails during startupDefer method on IRoutingApi allowing for easily deferring explicitly routed messagesCreate() instead of Start(), and the returned IBusStarter can be used to start message processing when it is desired to do soITopicNameConvention for defining how types are mapped to topics - thanks [heberop]IdempotencyData to accomodate certain stubborn serializersHandlerInvoker instances created in the ActivateHandlersStep by overriding - thanks [Liero]Nothing published for this version
Hide some internal types that were never meant to be part of the API
AbstractRebusLoggerFactory's RenderString method)RebusTransactionScope and make it expose CompleteAsync() and Complete() methods for completing in an async/sync manner respectivelyILog interface with warning signature that accepts an Exceptionrbs2-in-reply-to header on replies containing message ID of the requestAssignDefaultHeadersStep for outgoing messagesDeferLocal and make deferral work analogous to sendingrbs2-error-details header to overcome limitations of the transport in cases where e.g. a long stack trace would make it impossible to forward a failed message to the error queueNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Add synchronous bus API which can be accessed via bus.Advanced.SyncBus that exposes synchronous bus.Send, etc. operations
bus.Advanced.SyncBus that exposes synchronous bus.Send, etc. operationsDefaultSyncTransactionContext which is completed with a synchronous .Complete() methodDefaultTransactionContext and DefaultSyncTransactionContext now automatically make the transaction context ambientGetCurrentClassLogger because the stack frame walking turned out to be unreliable in the face of what seems to be new, more aggressive method inliningIDataBus, which allows for reading attachments from outside message handlers* This is Rebus 2 :)
Move MSMQ things to separate repository and NuGet package Rebus.Msmq
Rebus.MsmqImprove SQL transport expired messages cleanup to hit an index - thanks [xenoputtss]
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
Your coding agent can read these notes before it upgrades. Set up the MCP server →