Namespace Chapar.Core.Abstractions
Classes
AggregateRoot
Base class for aggregate roots with built‑in domain event collection.
Interfaces
IAggregateRoot
Marks an entity as an aggregate root that can collect domain events.
IChaparBus
Primary abstraction for sending events and commands onto the message bus.
IChaparDbContext
Marker interface for the DbContext used by Chapar stores. Implement this interface on your application's DbContext to resolve ambiguous injections when multiple DbContext types are registered in the DI container.
IChaparRequestClient<TRequest, TResponse>
Abstraction for request/response messaging pattern.
The client is specialised for one request‑response pair and is typically
registered in the DI container for a specific TRequest.
ICommand
Represents a command that is sent to exactly one logical receiver. Commands express an intent that should be executed once.
IConsumeFilter
An abstraction for a filter that is applied to every incoming message before it reaches the handler. Implementations can enforce policies like Idempotency (Inbox pattern), validation, etc.
IDomainEvent
Marker interface for domain events that are handled internally within the domain.
IEvent
Represents an event that can be broadcast to any number of subscribers. Events are immutable facts that happened in the past.
IIntegrationEvent
Marker interface for events that cross service boundaries and are published on the message bus (Integration Events).
IMessage
Marker interface for all messages flowing through the Chapar bus. There is no constraint on the structure; it exists to enable compile‑time dispatch.
IMessageContextAccessor
Provides access to the current message headers for both reading and writing. This allows pipeline behaviors to inspect and enrich message metadata without coupling to a specific transport.
IMessageHandler<TMessage>
Defines a handler for a specific message type. The bus infrastructure will invoke this when a matching message arrives.