Table of Contents

Namespace Savvyio.Extensions.DependencyInjection.Messaging

Assembly: Savvyio.Extensions.DependencyInjection.dll

Messaging infrastructure belongs behind an abstraction. The Savvyio.Extensions.DependencyInjection.Messaging namespace provides AddMessageQueue<TService, TRequest> and AddMessageBus<TService, TRequest> to bind the abstract messaging interfaces to concrete implementations without tying the domain layer to a specific broker technology.

Start with AddMessageBus<TService, TRequest> to register an event bus, or AddMessageQueue<TService, TRequest> to register a command queue. For broker-specific registration helpers (NATS, RabbitMQ, Azure Queue Storage, Amazon SQS), use the corresponding Savvyio.Extensions.DependencyInjection.* namespace.

Availability: .NET 10 and .NET 9

Extension Members

Type Ext Methods
IServiceCollection ⬇️ AddMessageQueue<TService, TRequest>, AddMessageBus<TService, TRequest>

Classes

ServiceCollectionExtensions

Extension methods for the IServiceCollection interface.

Interfaces

IPointToPointChannel<TRequest, TMarker>

Defines a generic way to support multiple implementations of a bus that is used for interacting with other subsystems (out-process/inter-application) to do something (e.g., change the state).

IPublishSubscribeChannel<TRequest, TMarker>

Defines a generic way to support multiple implementations of a bus that is used for interacting with other subsystems (out-process/inter-application) to be notified (e.g., made aware of something that has happened).

IPublisher<TRequest, TMarker>

Defines a generic way to support multiple implementations of a publisher/sender channel for interacting with other subsystems (out-process/inter-application) to be notified (e.g., made aware of something that has happened).

IReceiver<TRequest, TMarker>

Defines a generic way to support multiple implementations of a consumer/receiver channel used by subsystems to receive a command and perform one or more actions (e.g., change the state).

ISender<TRequest, TMarker>

Defines a generic way to support multiple implementations of a producer/sender channel used for interacting with other subsystems (out-process/inter-application) to do something (e.g., change the state).

ISubscriber<TRequest, TMarker>

Defines a generic way to support multiple implementations of a subscriber/receiver channel used by subsystems to subscribe to messages (typically events) to be made aware of something that has happened.