Skip to main content
Version: v1.2.3

Packages

The framework is split into focused NuGet packages so you only take what you need.

Core packages

PackageDescription
Deveel.Events.AnnotationsAttributes for describing event metadata on your data classes
Deveel.Events.PublisherCore publisher infrastructure (EventPublisher, EventPublisherBuilder, DI helpers)

Channel packages

PackageDescription
Deveel.Events.Publisher.AzureServiceBusPublish events to an Azure Service Bus queue or topic
Deveel.Events.Publisher.RabbitMqPublish events to a RabbitMQ exchange
Deveel.Events.Publisher.MassTransitPublish events through a MassTransit bus
Deveel.Events.Publisher.WebhookDeliver events to HTTP webhook endpoints
Deveel.Events.Publisher.OutboxPersist events to a transactional outbox for later relay
Deveel.Events.Publisher.Outbox.EntityFrameworkEntity Framework Core repository and helpers for the outbox channel
Deveel.Events.Amqp.AnnotationsAMQP-specific attributes (exchange name, routing key)

Subscriptions package

PackageDescription
Deveel.Events.SubscriptionsIn-process event subscription registry and dispatcher

Schema packages

PackageDescription
Deveel.Events.SchemaCore schema model, fluent builder, JSON writer, and schema validation
Deveel.Events.Schema.YamlExport an event schema as a YAML document
Deveel.Events.Schema.AsyncApiExport schemas as an AsyncAPI 2.x document (JSON or YAML)

Test package

PackageDescription
Deveel.Events.TestPublisherIn-memory test channel and helpers for unit tests

Package Details

Deveel.Events.Annotations

NuGet GitHub pre-release

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

NuGet GitHub pre-release

The heart of the framework. Provides:

  • EventPublisher
  • IEventPublishChannel and IBatchEventPublishChannel
  • EventPublisherBuilder for fluent DI registration
  • IEventFactory, IEventIdGenerator, and IEventSystemTime extensibility points
  • EventPublisherOptions for global defaults
  • named publisher pipelines resolved through keyed DI
dotnet add package Deveel.Events.Publisher

Deveel.Events.Publisher.AzureServiceBus

NuGet GitHub pre-release

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

NuGet GitHub pre-release

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

NuGet GitHub pre-release

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

NuGet GitHub pre-release

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

NuGet GitHub pre-release

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

NuGet GitHub pre-release

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

NuGet GitHub pre-release

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

NuGet GitHub pre-release

Adds an in-process event subscription registry and dispatcher middleware to the EventPublisher pipeline. Includes:

  • IEventSubscription and EventSubscription — the subscription model
  • IEventSubscriptionRegistry — default in-memory registry
  • IEventSubscriptionResolver — extensibility point for database- or remote-backed resolvers
  • EventDispatcher — middleware that queries resolvers and invokes matched handlers
  • EventFilter / EventFilterBuilder — composable FilterExpression factory for envelope and data-payload filtering
dotnet add package Deveel.Events.Subscriptions

Deveel.Events.Schema

NuGet GitHub pre-release

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

NuGet GitHub pre-release

Adds EventSchemaYamlWriter, which serialises an IEventSchema to a YAML stream using YamlDotNet.

dotnet add package Deveel.Events.Schema.Yaml

Deveel.Events.Schema.AsyncApi

NuGet GitHub pre-release

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

NuGet

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