Packages
The framework is split into focused NuGet packages so you only take what you need.
Core packages
| Package | Description |
|---|---|
Deveel.Events.Annotations | Attributes for describing event metadata on your data classes |
Deveel.Events.Publisher | Core publisher infrastructure (EventPublisher, EventPublisherBuilder, DI helpers) |
Channel packages
| Package | Description |
|---|---|
Deveel.Events.Publisher.AzureServiceBus | Publish events to an Azure Service Bus queue or topic |
Deveel.Events.Publisher.RabbitMq | Publish events to a RabbitMQ exchange |
Deveel.Events.Publisher.MassTransit | Publish events through a MassTransit bus |
Deveel.Events.Publisher.Webhook | Deliver events to HTTP webhook endpoints |
Deveel.Events.Publisher.Outbox | Persist events to a transactional outbox for later relay |
Deveel.Events.Publisher.Outbox.EntityFramework | Entity Framework Core repository and helpers for the outbox channel |
Deveel.Events.Amqp.Annotations | AMQP-specific attributes (exchange name, routing key) |
Subscriptions package
| Package | Description |
|---|---|
Deveel.Events.Subscriptions | In-process event subscription registry and dispatcher |
Schema packages
| Package | Description |
|---|---|
Deveel.Events.Schema | Core schema model, fluent builder, JSON writer, and schema validation |
Deveel.Events.Schema.Yaml | Export an event schema as a YAML document |
Deveel.Events.Schema.AsyncApi | Export schemas as an AsyncAPI 2.x document (JSON or YAML) |
Test package
| Package | Description |
|---|---|
Deveel.Events.TestPublisher | In-memory test channel and helpers for unit tests |
Package Details
Deveel.Events.Annotations
Contains the [Event] and [EventProperty] attributes used to annotate data-transfer classes with event type metadata. No dependencies except the .NET BCL.
dotnet add package Deveel.Events.Annotations
Deveel.Events.Publisher
The heart of the framework. Provides:
EventPublisherIEventPublishChannelandIBatchEventPublishChannelEventPublisherBuilderfor fluent DI registrationIEventFactory,IEventIdGenerator, andIEventSystemTimeextensibility pointsEventPublisherOptionsfor global defaults- named publisher pipelines resolved through keyed DI
dotnet add package Deveel.Events.Publisher
Deveel.Events.Publisher.AzureServiceBus
Azure Service Bus channel implementation. Serialises CloudEvent objects as ServiceBusMessage instances and sends them to a configured queue or topic.
dotnet add package Deveel.Events.Publisher.AzureServiceBus
Deveel.Events.Publisher.RabbitMq
RabbitMQ channel implementation using the official RabbitMQ.Client library. Supports AMQP exchange/routing-key annotations, publisher confirms, and persistent messages.
dotnet add package Deveel.Events.Publisher.RabbitMq
Deveel.Events.Publisher.MassTransit
Wraps MassTransit's IPublishEndpoint / ISendEndpointProvider so events can be routed through any MassTransit-supported transport.
dotnet add package Deveel.Events.Publisher.MassTransit
Deveel.Events.Publisher.Webhook
Delivers events over HTTP to a webhook endpoint. Features HMAC signing (SHA-256/384/512), exponential-backoff retries, configurable headers, and pluggable serialisers.
dotnet add package Deveel.Events.Publisher.Webhook
Deveel.Events.Publisher.Outbox
Implements the transactional outbox pattern for event publishing. It adds the AddOutbox<TMessage>() builder entry point, outbox relay services, repository abstractions, and message-factory hooks for persisting events before relaying them to a transport-specific publisher pipeline.
dotnet add package Deveel.Events.Publisher.Outbox
Deveel.Events.Publisher.Outbox.EntityFramework
Adds Entity Framework Core integration for the outbox channel, including DbOutboxMessage, OutboxDbContext, and the WithEntityFramework() registration helper that wires an IOutboxMessageRepository<TMessage> backed by EF Core.
dotnet add package Deveel.Events.Publisher.Outbox.EntityFramework
Deveel.Events.Amqp.Annotations
Adds [AmqpExchange] and [AmqpRoutingKey] attributes to let you declare per-event-type AMQP routing metadata directly on your data classes. See RabbitMQ — AMQP Annotations for usage details.
dotnet add package Deveel.Events.Amqp.Annotations
Deveel.Events.Subscriptions
Adds an in-process event subscription registry and dispatcher middleware to the EventPublisher pipeline. Includes:
IEventSubscriptionandEventSubscription— the subscription modelIEventSubscriptionRegistry— default in-memory registryIEventSubscriptionResolver— extensibility point for database- or remote-backed resolversEventDispatcher— middleware that queries resolvers and invokes matched handlersEventFilter/EventFilterBuilder— composableFilterExpressionfactory for envelope and data-payload filtering
dotnet add package Deveel.Events.Subscriptions
Deveel.Events.Schema
Core schema model. Includes EventSchema, EventSchemaBuilder (fluent API), EventSchemaCreator (reflection-based), IEventSchemaFactory, IEventSchemaWriter, and IEventSchemaValidator.
dotnet add package Deveel.Events.Schema
Deveel.Events.Schema.Yaml
Adds EventSchemaYamlWriter, which serialises an IEventSchema to a YAML stream using YamlDotNet.
dotnet add package Deveel.Events.Schema.Yaml
Deveel.Events.Schema.AsyncApi
Exports single or multiple event schemas as a complete AsyncAPI 2.x document (JSON or YAML).
dotnet add package Deveel.Events.Schema.AsyncApi
Deveel.Events.TestPublisher
An in-memory publish channel for use in unit and integration tests. Invokes a user-supplied callback whenever an event is published, so you can assert on published events without a real transport.
dotnet add package Deveel.Events.TestPublisher