LiteBus.Commands.Extensions.MicrosoftDependencyInjection

LiteBus is an easy-to-use and ambitious in-process mediator providing the foundation to implement Command Query Separation (CQS). It is implemented with minimal reflection and instead utilizes covariance and contravariance to provide its core functionality.


Keywords
cqrs, mediator, cqs, csharp, dispatcher, dotnet, dotnet-core, eventbus
License
MIT
Install
Install-Package LiteBus.Commands.Extensions.MicrosoftDependencyInjection -Version 0.24.3

Documentation



LiteBus

An easy-to-use and ambitious in-process mediator to implement CQS

CI/CD Badge Code Coverage Badge LiteBus Nuget Version

For a detailed understanding and advanced use cases, please refer to the Wiki.

Features

  • Developed with .NET 8.0
  • Independent (No external dependencies)
  • Reduced use of reflection
  • Provides polymorphic dispatch and handling of messages with support for covariance and contravariance
  • Core Messaging Types include:
    • ICommand: Command without result
    • ICommand<TResult>: Command with a result
    • IQuery<TResult>: Query
    • IStreamQuery<TResult>: Query yielding IAsyncEnumerable<TResult>
    • IEvent: Event
  • Designed for flexibility and extensibility
  • Modular architecture: Abstractions and implementations are provided in distinct packages
  • Allows ordering of handlers
  • Can handle plain messages (class types without specific interface implementations)
  • Supports generic messages
  • Features both global and individual pre and post handlers. These handlers also support covariance and contravariance
  • Events do not necessarily need to inherit from IEvent, accommodating DDD scenarios. This is beneficial for maintaining clean domain events without binding them to any particular library interface.