Bsft.Messaging.Abstractions 2.2.0

dotnet add package Bsft.Messaging.Abstractions --version 2.2.0
                    
NuGet\Install-Package Bsft.Messaging.Abstractions -Version 2.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Bsft.Messaging.Abstractions" Version="2.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bsft.Messaging.Abstractions" Version="2.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Bsft.Messaging.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Bsft.Messaging.Abstractions --version 2.2.0
                    
#r "nuget: Bsft.Messaging.Abstractions, 2.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Bsft.Messaging.Abstractions@2.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Bsft.Messaging.Abstractions&version=2.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Bsft.Messaging.Abstractions&version=2.2.0
                    
Install as a Cake Tool

Bsft.Messaging.Abstractions

The contracts of the Bsft.Messaging family: what an integration event is, what goes on the wire, and every seam a transport, a store or a consumer is written against — without the implementation.

Install

dotnet add package Bsft.Messaging.Abstractions

No further Bsft packages, and no third-party dependencies at all. Its dependency closure is the BCL and nothing else, which is what lets a client assembly, a broker adapter or a second store reference the contracts without pulling the pipeline in.

Register

// Nothing to register: this package has no DI entry point.

An .Abstractions package registers nothing by design. Reference Bsft.Messaging and call AddBsftMessaging to get the implementations of everything declared here.

Configure

None. Options types live in the implementation package, so an assembly that only holds contracts cannot drag configuration binding in with them.

Extend

The seams a host or a second implementation may supply, one line each:

  • IMessageBus — publishes an IntegrationEventMessage; the sending half of the transport. Defaults to the in-process bus, replaced by a broker adapter.
  • IMessageSource — streams IMessageDelivery instances; the receiving half. The two halves are what a broker adapter implements and nothing else.
  • IMessageDelivery — one delivery and the three ways to finish with it: acknowledge, retry, park. A retry carries the delay before which the message must not be delivered again; an implementation schedules that rather than sleeping, or documents that it cannot.
  • IOutboxStore — leases pending messages and records their outcome; never publishes anything itself. Abandoning a message records when it may be leased again, so a wait survives a restart.
  • IOutboxProcessor — runs one drain pass of the outbox on demand rather than waiting for the polling loop. Implemented by the dispatcher the host already runs, so a test drains what the application would have published; a pass takes one batch, so repeat until it returns zero.
  • IInboxStore — the record of which events this consumer has finished with, split into a claim and a commit so that an implementation sharing the application's unit of work can be atomic.
  • IIntegrationEventCollector / IIntegrationEventBuffer — the staging area, split into the side application code writes and the side the persistence layer drains.
  • IIntegrationEventSerializer — how an event is encoded into a payload and back.
  • IIntegrationEventTypeRegistry — the explicit mapping between an event type and the stable name it travels under.
  • IIntegrationEventHandler<TEvent> — what an application implements to consume an event. Delivery is at-least-once, so it must be idempotent.
  • IIntegrationEventHandlerInvoker — runs the handlers of one decoded event, in registration order, reporting their failures together.
  • IIncomingMessageDecoder — turns wire data into a typed event or refuses it with a MessageParkReason.
  • IInboxGuardedDelivery — one delivery through the inbox: claim, handlers, commit.
  • IIntegrationEventConsumer — one delivery end to end, including telling the transport what became of it.
  • IMessageCorrelationAccessor / IMessageCorrelationScope — where a staged event's correlation id comes from, and how a handled message's is restored around the handlers.
  • IInternalIntegrationEvent — the marker that keeps a framework-internal event off external fan-out such as webhooks.

The contract types beside them are IntegrationEventMessage (the wire envelope and its version), LeasedOutboxMessage, EventDeliveryOutcome, MessageParkReason, MessageReasonLimits and the two exceptions in Exceptions/, MessagePublishException and MessageDecodeException.

Documentation

Topic page: docs/messaging.md. Conventions: docs/package-conventions.md.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Bsft.Messaging.Abstractions:

Package Downloads
Bsft.Messaging

BSFT Framework messaging: in-memory message bus, integration event staging and the transactional outbox dispatcher.

Bsft.Messaging.RabbitMQ

BSFT Framework RabbitMQ transport for Bsft.Messaging

Bsft.Messaging.Correlation

BSFT Framework bridge between Bsft.Correlation and Bsft.Messaging

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.2.0 134 10/23/2026
2.1.0 182 9/28/2026