-
Notifications
You must be signed in to change notification settings - Fork 3
Home
A. Shafie edited this page Nov 24, 2023
·
5 revisions
LiteBus is a lightweight messaging library that aims to simplify the process of handling messages, events, and commands within your application. With a clean and intuitive API, LiteBus allows developers to focus on application logic rather than infrastructure concerns.
- Developed with .NET 8
- 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 yieldingIAsyncEnumerable<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.
- Command Contracts
- Command Handler Contracts
- Command Main Handlers
- Command Mediator
- Command Pre Handlers
- Command Post-Handlers
- Command Error Handlers
- Query Contracts
- Query Handler Contracts
- Query Main Handlers
- Query Mediator
- Query Pre Handlers
- Query Post-Handlers
- Query Error Handlers