Upgrade to v21.0.0
In general, all major components in the Shuttle space have a semver version number starting at 21.0.0.
Breaking Changes
Please note that there are quite a few breaking changes.
Shuttle.Core
Shuttle.Core.Contract
- Throwing
ArgumentNullExceptioninstead ofNullReferenceExceptionforAgainstNullandAgainstNullOrEmptyString.
Shuttle.Core.Data
Note: This package has been deprecated.
Shuttle.Core.Mediator
- All participants now registered as
Scopedby default.
Shuttle.Core.Pipelines
- The
CancellationTokenhas been removed fromIPipelineContextand been added toIPipelineObserver<T>.ExecuteAsync(IPipelineContext<T> pipelineContext, CancellationToken cancellation = default).
Shuttle.Core.Reflection
Shuttle.Esb -> Shuttle.Hopper
Note:
Shuttle.Esbhas been deprecated andShuttle.Hoppernow contains service bus functionality.
Inbox options
WorkQueueUrirenamed toWorkTransportUri.DeferredQueueUrirenamed toDeferredTransportUri.ErrorQueueUrirenamed toErrorTransportUri.DurationToIgnoreOnFailurerenamed toIgnoreOnFailureDurations.
TransportMessage
DateTime ExpiryDatechanged toDateTimeOffset ExpiresAt.DateTime IgnoreTillDatechanged toDateTimeOffset IgnoreUntil.DateTime SendDatechanged toDateTimeOffset SentAt.
TransportMessageBuilder
Local()renamed toToSelf().Defer()renamed toDeferUntil(DateTimeOffset)andDeferFor(TimeSpan).WillExpire()renamed toExpiresAt(DateTimeOffset)andExpiresIn(TimeSpan).
Shuttle.Esb.Sql.Subscription
Previuosly the SQL subscription service was registered like this:
c#
services
.AddSqlSubscription()
.AddServiceBus(builder =>
{
builder.Options.Subscription.ConnectionStringName = "ProcessManagement";
});It now needs to be registered like this:
c#
services
.AddSqlSubscription(builder =>
{
builder.Options.ConnectionStringName = "Subscription";
builder.Options.Schema = "dbo"; // Optional. Defaults to `dbo`
builder.UseSqlServer();
})Shuttle.Recall
- Renamed
IAsyncEventHandlertoIEventHandler. - Removed
EventStore.CreateEventStream. UsingEventStore.GetAsyncwill return an empty event stream if none exists. - Renamed
EventStream.AddEventtoEventStream.Add. - Removed snapshots as such funcationality should be modelled explicity, for instance using the Closing the Books pattern.