develop
Integration of all external packages into MassTransit, split out into Abstractions, Middleware, and the core MassTransit assembly.
Fixed in-memory outbox telemetry to capture ExecutionContext, which should properly flow activity traces
Massive file cleanup
Added ExceptionHeaders to ExceptionReceiveContext so that additional transport headers can be specified (or existing headers replaced/removed) when moving messages to the error queue.
Add the ability to delay execute of the next routing slip activity, as well as a new callback for setting variables, setting the delay.
Cleanup using
Huge push towards optimization on startup, state machines, type discovery, caching, and the consume pipeline. Rebuilt the dispatch filter as a consume context filter for message type dispatch.
Fixed #4692 - OperationCanceledException was for some reason not showing up in GetBaseException(), so checking for both now.
Added configuration for Jaeger testing, to ensure that the open telemetry integration actually works.
Fixed #4867 - Changed Configure Topology Filter One Time Setup to use entirely new approach
Adding nullability to abstractions, and fixing warnings
Changed consume pipe so that simple ConsumeContext filters are PrePipe configured prior to the dispatch filter
Fixed #3832 (again) - this time, is more stain removing power (Azure Scheduled Message Cancel vs. Skip)
First pass at ActivitySource migration
Replace Array.Empty with collection expression
Fixed #6045 - ReceiveFault called in places it shouldn't be called (should be Dispatcher only).
Working on an inbox/outbox implementation for Entity Framework Core, InMemory, and ultimately additional transaction-based storage engines
Refactoring telemetry
Job Consumers - Reworked CancelJob so that it goes through the sagas, no longer creating a subscription on the instance. Also, made it so that jobs canceled when an instance was stopped are automatically rescheduled for the next available job consumer instance.
Fixed #3807 - added ability to configure redelivery for completed/faulted events that arrive prior to the started event
Fixed #3577 - wrong context used for consumer dependency injection when outbox is used.
Fixed #3791 - Again, but this time with a new lock update strategy to ensure the InboxState is truly locked, avoiding inconsistency and duplicate messages on the broker.
Added the supported message types to the outbox table (update your migrations for EF Core) and use the outbox message properties to initialize the send context.
Fixed #5595 - If an exception is thrown by the outbox when saving changes after a consumer completes, produce a typed Fault<T>
Fixed #5881 - transfer MT-* headers from outbox message to the SendContext so that the transport can use them.
Fixed #4070 - Transactional Outbox now properly shares the consume scope with send/publish so that scoped filters run in the same container scope as the consumer transaction.
Refactored job service for container-based configuration and eliminated the need for service instance configuration. Added extensions for Cosmos, Redis, MongoDB, Azure Table, EF Core
Use ReceiveEndpointDependencyFilter to manage dependencies. Add new AddDependency override
Fixed #5812 - Redelivery filter can now be properly stacked/chained/etc.
Add generic scoped filter type to configuration JSON
Fixed #4333 - Change query-based saga dispatch to sequential vs parallel
Standardized the topology for partition key across service bus, event hub, and the SQL transport
Refactored RoutingKey send topology formatter into the main assembly (used by gRPC and RabbitMQ, also the Database Transport)
Fixed #4240 - Added ability to specify message type specific serialization content type
Updating cancellation token handling for consumers, sagas, and routing slip activities for consistent handling of consumer-generated OperationCanceledExceptions